pub struct GPiece {Show 15 fields
pub pos: PosC<i32>,
pub face: FaceId,
pub held: Option<PlayerId>,
pub zlevel: ZLevel,
pub pinned: bool,
pub occult: PieceOccult,
pub angle: PieceAngle,
pub gen: Generation,
pub lastclient: ClientId,
pub last_released: ClientId,
pub gen_before_lastclient: Generation,
pub xdata: Option<Box<dyn PieceXData>>,
pub moveable: PieceMoveable,
pub rotateable: bool,
pub fastsplit: Option<FastSplitId>,
}Fields§
§pos: PosC<i32>§face: FaceId§held: Option<PlayerId>§zlevel: ZLevel§pinned: bool§occult: PieceOccult§angle: PieceAngle§gen: Generation§lastclient: ClientId§last_released: ClientId§gen_before_lastclient: Generation§xdata: Option<Box<dyn PieceXData>>§moveable: PieceMoveable§rotateable: bool§fastsplit: Option<FastSplitId>Implementations§
Source§impl GPiece
impl GPiece
pub fn xdata<T>(&self) -> Result<Option<&T>, InternalError>where
T: PieceXData,
pub fn xdata_exp<T>(&self) -> Result<&T, InternalError>where
T: PieceXData,
pub fn xdata_mut<T, D>(&mut self, def: D) -> Result<&mut T, InternalError>where
T: PieceXData,
D: FnOnce() -> T,
pub fn xdata_mut_exp<T>(&mut self) -> Result<&mut T, InternalError>where
T: PieceXData,
pub fn xdata_init<T>(&mut self, val: T) -> Result<&mut T, InternalError>where
T: PieceXData,
pub fn moveable(&self) -> PieceMoveable
pub fn heavy(&self) -> bool
pub fn rotateable(&self) -> bool
pub fn dummy() -> GPiece
Source§impl GPiece
impl GPiece
pub fn fully_visible_to_everyone(&self) -> Option<ShowUnocculted>
pub fn occulter_check_unrotated( &self, _: ShowUnocculted, ) -> Result<OcculterRotationChecked, Inapplicable>
pub fn fully_visible_to( &self, goccults: &GOccults, player: PlayerId, ) -> Option<ShowUnocculted>
pub fn involved_in_occultation(&self) -> bool
pub fn forbid_involved_in_occultation(&self) -> Result<(), Inapplicable>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for GPiece
impl<'de> Deserialize<'de> for GPiece
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<GPiece, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<GPiece, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for GPiece
impl Serialize for GPiece
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
Auto Trait Implementations§
impl Freeze for GPiece
impl !RefUnwindSafe for GPiece
impl Send for GPiece
impl !Sync for GPiece
impl Unpin for GPiece
impl UnsafeUnpin for GPiece
impl !UnwindSafe for GPiece
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
Mutably borrows from an owned value. Read more
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>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<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>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> 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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<A> DynCastExt for A
impl<A> DynCastExt for A
Source§fn dyn_cast<T>(
self,
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source>where
A: DynCastExtHelper<T>,
T: ?Sized,
fn dyn_cast<T>(
self,
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source>where
A: DynCastExtHelper<T>,
T: ?Sized,
Use this to cast from one trait object type to another. Read more
Source§fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target
fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target
Use this to upcast a trait to one of its supertraits. Read more
Source§fn dyn_cast_adv<F, T>(
self,
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source>
fn dyn_cast_adv<F, T>( self, ) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source>
Source§fn dyn_cast_with_config<C>(
self,
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source>where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
fn dyn_cast_with_config<C>(
self,
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source>where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
Use this to cast from one trait object type to another. With this method
the type parameter is a config type that uniquely specifies which cast
should be preformed. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more