pub struct CommandScopeRegistry { /* private fields */ }Expand description
Store the scope graph and provide methods for querying it.
Implementations§
Source§impl CommandScopeRegistry
impl CommandScopeRegistry
Sourcepub fn add_scope<S: Into<String>>(&mut self, scope: S)
pub fn add_scope<S: Into<String>>(&mut self, scope: S)
Add a scope to the registry.
§Example
use chunkedge_command::CommandScopeRegistry;
let mut registry = CommandScopeRegistry::new();
// creates two nodes. "chunkedge" and "command" with an edge from "chunkedge" to "command"
registry.add_scope("chunkedge.command");
// creates one node. "chunkedge.command.tp" with an edge from "chunkedge.command" to
// "chunkedge.command.tp"
registry.add_scope("chunkedge.command.tp");
// the root node is always present
assert_eq!(registry.scope_count(), 4);Sourcepub fn remove_scope(&mut self, scope: &str)
pub fn remove_scope(&mut self, scope: &str)
Remove a scope from the registry.
§Example
use chunkedge_command::CommandScopeRegistry;
let mut registry = CommandScopeRegistry::new();
registry.add_scope("chunkedge.command");
registry.add_scope("chunkedge.command.tp");
assert_eq!(registry.scope_count(), 4);
registry.remove_scope("chunkedge.command.tp");
assert_eq!(registry.scope_count(), 3);Sourcepub fn grants(&self, scope: &str, other: &str) -> bool
pub fn grants(&self, scope: &str, other: &str) -> bool
Check if a scope grants another scope.
§Example
use chunkedge_command::CommandScopeRegistry;
let mut registry = CommandScopeRegistry::new();
registry.add_scope("chunkedge.command");
registry.add_scope("chunkedge.command.tp");
assert!(registry.grants("chunkedge.command", "chunkedge.command.tp")); // command implies tp
assert!(!registry.grants("chunkedge.command.tp", "chunkedge.command")); // tp does not imply commandSourcepub fn any_grants(&self, scopes: &Vec<&str>, other: &str) -> bool
pub fn any_grants(&self, scopes: &Vec<&str>, other: &str) -> bool
do any of the scopes in the list grant the other scope?
§Example
use chunkedge_command::CommandScopeRegistry;
let mut registry = CommandScopeRegistry::new();
registry.add_scope("chunkedge.command");
registry.add_scope("chunkedge.command.tp");
registry.add_scope("chunkedge.admin");
assert!(registry.any_grants(
&vec!["chunkedge.admin", "chunkedge.command"],
"chunkedge.command.tp"
));Sourcepub fn link(&mut self, scope: &str, other: &str)
pub fn link(&mut self, scope: &str, other: &str)
Create a link between two scopes so that one implies the other. It will add them if they don’t exist.
§Example
use chunkedge_command::CommandScopeRegistry;
let mut registry = CommandScopeRegistry::new();
registry.add_scope("chunkedge.command.tp");
registry.link("chunkedge.admin", "chunkedge.command");
assert!(registry.grants("chunkedge.admin", "chunkedge.command"));
assert!(registry.grants("chunkedge.admin", "chunkedge.command.tp"));Sourcepub fn scope_count(&self) -> usize
pub fn scope_count(&self) -> usize
Get the number of scopes in the registry.
Trait Implementations§
Source§impl Clone for CommandScopeRegistry
impl Clone for CommandScopeRegistry
Source§fn clone(&self) -> CommandScopeRegistry
fn clone(&self) -> CommandScopeRegistry
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Component for CommandScopeRegistry
impl Component for CommandScopeRegistry
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
A constant indicating the storage type used for this component.
Source§type Mutability = Mutable
type Mutability = Mutable
A marker type to assist Bevy with determining if this component is
mutable, or immutable. Mutable components will have [
Component<Mutability = Mutable>],
while immutable components will instead have [Component<Mutability = Immutable>]. Read moreSource§fn register_required_components(
_requiree: ComponentId,
required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Registers required components. Read more
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
Returns [
ComponentRelationshipAccessor] required for working with relationships in dynamic contexts. Read more§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_add [ComponentHook] for this [Component] if one is defined.§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_insert [ComponentHook] for this [Component] if one is defined.§fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_discard [ComponentHook] for this [Component] if one is defined.§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_remove [ComponentHook] for this [Component] if one is defined.§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_despawn [ComponentHook] for this [Component] if one is defined.§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
Maps the entities on this component using the given [
EntityMapper]. This is used to remap entities in contexts like scenes and entity cloning.
When deriving [Component], this is populated by annotating fields containing entities with #[entities] Read moreSource§impl Debug for CommandScopeRegistry
impl Debug for CommandScopeRegistry
Source§impl Default for CommandScopeRegistry
impl Default for CommandScopeRegistry
impl Resource for CommandScopeRegistry
Auto Trait Implementations§
impl Freeze for CommandScopeRegistry
impl RefUnwindSafe for CommandScopeRegistry
impl Send for CommandScopeRegistry
impl Sync for CommandScopeRegistry
impl Unpin for CommandScopeRegistry
impl UnsafeUnpin for CommandScopeRegistry
impl UnwindSafe for CommandScopeRegistry
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
§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>
§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Return a iterator over this [
Bundle]’s component ids. This will be None if the component has not been registered.§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
§unsafe fn get_components(
ptr: MovingPtr<'_, C>,
func: &mut impl FnMut(StorageType, OwningPtr<'_>),
) -> <C as DynamicBundle>::Effect
unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
Moves the components out of the bundle. Read more
§unsafe fn apply_effect(
_ptr: MovingPtr<'_, MaybeUninit<C>>,
_entity: &mut EntityWorldMut<'_>,
)
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
Applies the after-effects of spawning this bundle. Read more
§impl<T> FromTemplate for T
impl<T> FromTemplate for T
§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.
§impl<T> Template for T
impl<T> Template for T
§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
Uses this template and the given
entity context to produce a [Template::Output].§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clones this template. See
Clone.§impl<T> TypeData for T
impl<T> TypeData for T
§fn clone_type_data(&self) -> Box<dyn TypeData>
fn clone_type_data(&self) -> Box<dyn TypeData>
Creates a type-erased clone of this value.