diff --git a/changelog.md b/changelog.md index c19ab71cde..76f74c4cfe 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,8 @@ when upgrading from a version of rust-sdl2 to another. ### Next +[PR #1408](https://github.com/Rust-SDL2/rust-sdl2/pull/1408) Allow comparing `Version`s, add constant with the version the bindings were compiled with. + [PR #1407](https://github.com/Rust-SDL2/rust-sdl2/pull/1407) Add new use_ios_framework for linking to SDL2.framework on iOS ### v0.37.0 diff --git a/src/sdl2/version.rs b/src/sdl2/version.rs index 95ce2e2bf6..427d7b1868 100644 --- a/src/sdl2/version.rs +++ b/src/sdl2/version.rs @@ -1,14 +1,12 @@ -/*! -Querying SDL Version - */ +//! Querying SDL Version use std::ffi::CStr; use std::fmt; use crate::sys; -/// A structure that contains information about the version of SDL in use. -#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)] +/// A structure that contains a version of SDL. +#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug, PartialOrd, Ord)] pub struct Version { /// major version pub major: u8, @@ -19,7 +17,15 @@ pub struct Version { } impl Version { - /// Convert a raw *SDL_version to Version. + /// The version of SDL that was used to generate the bindings. This may differ from the version + /// used at runtime, use [`version`] to get that. + pub const COMPILE_TIME_VERSION: Self = Self { + major: sys::SDL_MAJOR_VERSION as u8, + minor: sys::SDL_MINOR_VERSION as u8, + patch: sys::SDL_PATCHLEVEL as u8, + }; + + /// Convert a raw SDL_version to Version. pub fn from_ll(v: sys::SDL_version) -> Version { Version { major: v.major,