pub trait SaveData: Sized {
// Required methods
fn serialize(&self) -> Vec<u8> ⓘ;
fn deserialize(data: &[u8]) -> Result<Self, SaveError>;
fn save_size() -> usize;
// Provided methods
fn checksum(data: &[u8]) -> u16 { ... }
fn validate(data: &[u8]) -> bool { ... }
}Expand description
Game-specific save data that can be serialized, checksummed, and persisted.
Implementors define how their data is serialized to/from bytes and how large each save slot is. A default CRC16 checksum is provided.
Required Methods§
Sourcefn serialize(&self) -> Vec<u8> ⓘ
fn serialize(&self) -> Vec<u8> ⓘ
Serialize this game data to a byte vector.
The returned data must NOT include the checksum — that is appended
automatically by SaveManager.
Sourcefn deserialize(data: &[u8]) -> Result<Self, SaveError>
fn deserialize(data: &[u8]) -> Result<Self, SaveError>
Deserialize game data from a byte slice.
The input does NOT include the checksum bytes — they are stripped
by SaveManager before calling this method.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".