pub struct JsonAssetSerializationBackend;Expand description
JSON-based asset serialization backend.
This backend uses serde_json to serialize and deserialize assets in JSON format. JSON is human-readable and widely supported, making it ideal for debugging, configuration files, and interoperability with other systems.
§Performance Characteristics
- Serialization: Moderate speed, larger output size due to text format
- Deserialization: Moderate speed, good error reporting
- Storage: Human-readable but less space-efficient than binary formats
§Example
let backend = JsonAssetSerializationBackend;
// Use backend for serialization operations
asset_manager.set_serialization_backend(Box::new(backend));Trait Implementations§
Source§impl AssetSerializationBackend for JsonAssetSerializationBackend
impl AssetSerializationBackend for JsonAssetSerializationBackend
Source§fn serialize(&self, asset: &SerializedAsset) -> Result<Vec<u8>>
fn serialize(&self, asset: &SerializedAsset) -> Result<Vec<u8>>
Serializes a SerializedAsset to JSON bytes.
Uses serde_json internally to convert the asset to a JSON byte vector. The resulting JSON will be compact (no pretty-printing) for efficiency.
§Arguments
asset- The asset to serialize
§Returns
A vector of bytes containing the JSON representation, or an error if serialization fails (e.g., due to invalid UTF-8 in string fields).
Source§fn deserialize(&self, bytes: &[u8]) -> Result<SerializedAsset>
fn deserialize(&self, bytes: &[u8]) -> Result<SerializedAsset>
Deserializes JSON bytes back into a SerializedAsset.
Parses the provided JSON bytes and reconstructs a SerializedAsset. The JSON must match the expected SerializedAsset structure.
§Arguments
bytes- JSON bytes to deserialize
§Returns
The reconstructed SerializedAsset, or an error if the JSON is malformed or doesn’t match the expected structure.
Auto Trait Implementations§
impl Freeze for JsonAssetSerializationBackend
impl RefUnwindSafe for JsonAssetSerializationBackend
impl Send for JsonAssetSerializationBackend
impl Sync for JsonAssetSerializationBackend
impl Unpin for JsonAssetSerializationBackend
impl UnsafeUnpin for JsonAssetSerializationBackend
impl UnwindSafe for JsonAssetSerializationBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.