Trait libre_pvz_resources::dynamic::AnyResource

source ·
pub trait AnyResource: Reflect + ErasedSerialize + Send + Sync + 'static {
    // Required methods
    fn as_reflect(&self) -> &dyn Reflect;
    fn as_reflect_mut(&mut self) -> &mut dyn Reflect;
    fn erased_deserialize(
        src: &mut dyn ErasedDeserializer<'_>
    ) -> Result<Box<dyn AnyResource>, Error>
       where Self: Sized;
    fn erased_encode(&self, writer: &mut dyn Writer) -> Result<(), EncodeError>;
    fn erased_decode(
        reader: &mut dyn Reader
    ) -> Result<Box<dyn AnyResource>, DecodeError>
       where Self: Sized;
}
Expand description

Resource types with dynamic (de)serialization. Serialization through bincode is fixed to using the standard configuration, and cannot be changed at runtime, due to the current design of bincode API.

Required Methods§

source

fn as_reflect(&self) -> &dyn Reflect

Convert to a Reflect trait object.

source

fn as_reflect_mut(&mut self) -> &mut dyn Reflect

Convert to a mutable Reflect trait object.

source

fn erased_deserialize( src: &mut dyn ErasedDeserializer<'_> ) -> Result<Box<dyn AnyResource>, Error>
where Self: Sized,

Deserialize from an erased deserializer.

source

fn erased_encode(&self, writer: &mut dyn Writer) -> Result<(), EncodeError>

Encode as bincode to a given Writer using standard configuration.

source

fn erased_decode( reader: &mut dyn Reader ) -> Result<Box<dyn AnyResource>, DecodeError>
where Self: Sized,

Decode as bincode from a given Reader using standard configuration.

Trait Implementations§

source§

impl Debug for dyn AnyResource

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Decode for Box<dyn AnyResource>

source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
source§

impl<'de> Deserialize<'de> for Box<dyn AnyResource>

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Encode for dyn AnyResource

source§

fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError>

Encode a given type.
source§

impl Serialize for dyn AnyResource

source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more

Implementors§

source§

impl<T> AnyResource for T
where T: Reflect + Serialize + DeserializeOwned + Encode + Decode + Send + Sync + 'static,