Skip to main content

PieceSpec

Trait PieceSpec 

Source
pub trait PieceSpec:
    Debug
    + Sync
    + Send
    + 'static
    + Serialize
    + Deserialize {
    // Required method
    fn load(&self, pla: PieceLoadArgs<'_>) -> Result<SpecLoaded, SpecError>;

    // Provided methods
    fn count(&self, _pcaliases: &PieceAliases) -> Result<usize, SpecError> { ... }
    fn load_inert(
        &self,
        _ig: &Instance,
        _: SpecDepth,
    ) -> Result<SpecLoadedInert, SpecError> { ... }
}

Required Methods§

Provided Methods§

Source

fn count(&self, _pcaliases: &PieceAliases) -> Result<usize, SpecError>

Source

fn load_inert( &self, _ig: &Instance, _: SpecDepth, ) -> Result<SpecLoadedInert, SpecError>

Used when a piece wants to use another for its occulted form

Trait Implementations§

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<dyn PieceSpec>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

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

impl<'de> Deserialize<'de> for Box<dyn PieceSpec + Send>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<dyn PieceSpec + Send>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

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

impl<'de> Deserialize<'de> for Box<dyn PieceSpec + Send + Sync>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<dyn PieceSpec + Send + Sync>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

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

impl<'de> Deserialize<'de> for Box<dyn PieceSpec + Sync>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<dyn PieceSpec + Sync>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

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

impl<'typetag> Serialize for dyn PieceSpec + 'typetag

Source§

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

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn PieceSpec + Send + 'typetag

Source§

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

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn PieceSpec + Send + Sync + 'typetag

Source§

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

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn PieceSpec + Sync + 'typetag

Source§

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

Serialize this value into the given Serde serializer. Read more

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§