pub struct EntityProof<const TAG: EntityTag, EntityType, Next> { /* private fields */ }

Trait Implementations§

source§

impl<Next, EntityType, const ETAG: EntityTag> ConstraintT for EntityProof<ETAG, EntityType, Next>where Next: ConstraintT,

source§

fn add_entity<T, const TAG: EntityTag>( self, entity: T ) -> ConstraintResult<EntityProof<TAG, T, Self>>where T: ConstraintEntity + 'static,

source§

fn get_entity<T, const TAG: EntityTag>(&self) -> &Twhere T: ConstraintEntity + 'static, Self: HasEntityWithType<TAG, T>,

source§

fn get_entity_mut<T, const TAG: EntityTag>(&mut self) -> &mut Twhere T: ConstraintEntity + 'static, Self: HasEntityWithType<TAG, T>,

source§

fn try_get_entity<T, const TAG: EntityTag>(&self) -> ConstraintResult<&T>where T: ConstraintEntity + 'static,

source§

fn try_get_entity_mut<T, const TAG: EntityTag>( &mut self ) -> ConstraintResult<&mut T>where T: ConstraintEntity + 'static,

source§

impl<Next, EntityType, const ETAG: EntityTag> ShedNext<ETAG, EntityType, Next> for EntityProof<ETAG, EntityType, Next>where Next: ConstraintT, EntityType: ConstraintEntity + 'static,

source§

impl<Next, EntityType, Attr, const ETAG: EntityTag, const STAG: EntityTag, const RTAG: EntityTag> HasConstraint<Attr, STAG, RTAG> for EntityProof<ETAG, EntityType, Next>where Attr: BaseAttribute, Next: HasConstraint<Attr, STAG, RTAG>,

Prove EntityProof<_, _, HasConstraint<Attr, STAG, RTAG>> => HasConstraint<Attr, STAG, RTAG>

source§

impl<Next, EntityType, const TAG: EntityTag> HasEntity<TAG> for EntityProof<TAG, EntityType, Next>

Prove EntityProof<TAG, EntityType, _> => HasEntity

source§

impl<Next, EntityType, const TAG1: EntityTag, const TAG2: EntityTag> HasEntity<TAG2> for EntityProof<TAG1, EntityType, Next>where Next: HasEntity<TAG2>,

Prove EntityProof<_, _, HasEntity> => HasEntity

source§

impl<Next, EntityType, const TAG: EntityTag> HasEntityWithType<TAG, EntityType> for EntityProof<TAG, EntityType, Next>

Prove EntityProof<TAG, EntityType, _> => HasEntityWithType<TAG, EntityType>

source§

impl<Next, EntityType1, EntityType2, const TAG1: EntityTag, const TAG2: EntityTag> HasEntityWithType<TAG2, EntityType2> for EntityProof<TAG1, EntityType1, Next>where Next: HasEntityWithType<TAG2, EntityType2>,

Prove EntityProof<_, _, HasEntity<TAG2, EntityType2>> => HasEntity<TAG2, EntityType2>

Auto Trait Implementations§

§

impl<const TAG: &'static str, EntityType, Next> RefUnwindSafe for EntityProof<TAG, EntityType, Next>where EntityType: RefUnwindSafe, Next: RefUnwindSafe,

§

impl<const TAG: &'static str, EntityType, Next> Send for EntityProof<TAG, EntityType, Next>where EntityType: Send, Next: Send,

§

impl<const TAG: &'static str, EntityType, Next> Sync for EntityProof<TAG, EntityType, Next>where EntityType: Sync, Next: Sync,

§

impl<const TAG: &'static str, EntityType, Next> Unpin for EntityProof<TAG, EntityType, Next>where EntityType: Unpin, Next: Unpin,

§

impl<const TAG: &'static str, EntityType, Next> UnwindSafe for EntityProof<TAG, EntityType, Next>where EntityType: UnwindSafe, Next: UnwindSafe,

Blanket Implementations§

source§

impl<T> AcquireAttribute for Twhere T: AcquireAttributeWithResourceAndContext<()>,

source§

fn prove_async<'ctx, 'async_trait, Attr, const STAG: EntityTag>( self ) -> Pin<Box<dyn Future<Output = Result<ConstraintChain<STAG, DEFAULT_ELEMENT_TAG, Attr, Self>, Attr::Error>> + Send + 'async_trait>>where Attr::Subject: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject> + Send + 'async_trait, Attr: AsyncAttribute<Resource = (), Context<'ctx> = ()> + 'async_trait, 'ctx: 'async_trait,

source§

fn prove<'ctx, Attr, const STAG: EntityTag>( self ) -> Result<ConstraintChain<STAG, DEFAULT_ELEMENT_TAG, Attr, Self>, Attr::Error>where Attr::Subject: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject>, Attr: SyncAttribute<Resource = (), Context<'ctx> = ()>,

source§

impl<T, C> AcquireAttributeWithContext<C> for Twhere T: AcquireAttributeWithResourceAndContext<C>, C: Send,

source§

fn prove_with_context_async<'ctx, 'async_trait, Attr, const STAG: EntityTag>( self, context: C ) -> Pin<Box<dyn Future<Output = Result<ConstraintChain<STAG, DEFAULT_ELEMENT_TAG, Attr, Self>, Attr::Error>> + Send + 'async_trait>>where Attr::Subject: ConstraintEntity + 'static, C: 'async_trait, Self: HasEntityWithType<STAG, Attr::Subject> + Send + 'async_trait, Attr: AsyncAttribute<Resource = (), Context<'ctx> = C> + 'async_trait, 'ctx: 'async_trait,

source§

fn prove_with_context<'ctx, Attr, const STAG: EntityTag>( self, context: C ) -> Result<ConstraintChain<STAG, DEFAULT_ELEMENT_TAG, Attr, Self>, Attr::Error>where Attr::Subject: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject>, Attr: SyncAttribute<Resource = (), Context<'ctx> = C>,

source§

impl<T> AcquireAttributeWithResource for Twhere T: AcquireAttributeWithResourceAndContext<()>,

source§

fn prove_with_resource_async<'ctx, 'async_trait, Attr, const STAG: EntityTag, const RTAG: EntityTag>( self ) -> Pin<Box<dyn Future<Output = Result<ConstraintChain<STAG, RTAG, Attr, Self>, Attr::Error>> + Send + 'async_trait>>where Attr::Subject: ConstraintEntity + 'static, Attr::Resource: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject> + HasEntityWithType<RTAG, Attr::Resource> + Send + 'async_trait, Attr: AsyncAttribute<Context<'ctx> = ()> + 'async_trait, 'ctx: 'async_trait,

source§

fn prove_with_resource<'ctx, Attr, const STAG: EntityTag, const RTAG: EntityTag>( self ) -> Result<ConstraintChain<STAG, RTAG, Attr, Self>, Attr::Error>where Attr::Subject: ConstraintEntity + 'static, Attr::Resource: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject> + HasEntityWithType<RTAG, Attr::Resource>, Attr: SyncAttribute<Context<'ctx> = ()>,

source§

impl<T, C> AcquireAttributeWithResourceAndContext<C> for Twhere T: ConstraintT, C: Send,

source§

fn prove_with_resource_and_context_async<'ctx, 'async_trait, Attr, const STAG: EntityTag, const RTAG: EntityTag>( self, context: C ) -> Pin<Box<dyn Future<Output = Result<ConstraintChain<STAG, RTAG, Attr, Self>, Attr::Error>> + Send + 'async_trait>>where Attr::Subject: ConstraintEntity + 'static, Attr::Resource: ConstraintEntity + 'static, C: 'async_trait, Self: HasEntityWithType<STAG, Attr::Subject> + HasEntityWithType<RTAG, Attr::Resource> + Send + 'async_trait, Attr: AsyncAttribute<Context<'ctx> = C> + 'async_trait, 'ctx: 'async_trait,

source§

fn prove_with_resource_and_context<'ctx, Attr, const STAG: EntityTag, const RTAG: EntityTag>( self, context: C ) -> Result<ConstraintChain<STAG, RTAG, Attr, Self>, Attr::Error>where Attr::Subject: ConstraintEntity + 'static, Attr::Resource: ConstraintEntity + 'static, Self: HasEntityWithType<STAG, Attr::Subject> + HasEntityWithType<RTAG, Attr::Resource>, Attr: SyncAttribute<Context<'ctx> = C>,

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> InitializeConstraint for Twhere T: Send + Sync + 'static,

source§

fn into_entity<const ETAG: EntityTag>( self ) -> EntityProof<ETAG, Self, ConstraintStore>

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.