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§
fn load(&self, pla: PieceLoadArgs<'_>) -> Result<SpecLoaded, SpecError>
Provided Methods§
fn count(&self, _pcaliases: &PieceAliases) -> Result<usize, SpecError>
Sourcefn load_inert(
&self,
_ig: &Instance,
_: SpecDepth,
) -> Result<SpecLoadedInert, SpecError>
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>
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>,
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>
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>,
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>
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>,
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>
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>,
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
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,
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
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,
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
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,
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
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,
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".