pub struct FilteredEntityMut<'w, 's> { /* private fields */ }Expand description
Provides mutable access to a single entity and some of its components defined by the contained Access.
To define the access when used as a QueryData,
use a QueryBuilder or QueryParamBuilder.
The FilteredEntityMut must be the entire QueryData, and not nested inside a tuple with other data.
// This gives the `FilteredEntityMut` access to `&mut A`.
let mut query = QueryBuilder::<FilteredEntityMut>::new(&mut world)
.data::<&mut A>()
.build();
let mut filtered_entity: FilteredEntityMut = query.single_mut(&mut world).unwrap();
let component: Mut<A> = filtered_entity.get_mut().unwrap();Implementations§
Source§impl<'w, 's> FilteredEntityMut<'w, 's>
impl<'w, 's> FilteredEntityMut<'w, 's>
Sourcepub fn reborrow(&mut self) -> FilteredEntityMut<'_, 's>
pub fn reborrow(&mut self) -> FilteredEntityMut<'_, 's>
Returns a new instance with a shorter lifetime.
This is useful if you have &mut FilteredEntityMut, but you need FilteredEntityMut.
Sourcepub fn as_readonly(&self) -> FilteredEntityRef<'_, 's>
pub fn as_readonly(&self) -> FilteredEntityRef<'_, 's>
Gets read-only access to all of the entity’s components.
Sourcepub fn id(&self) -> Entity
pub fn id(&self) -> Entity
Returns the ID of the current entity.
Examples found in repository?
51fn main() {
52 let mut world = World::new();
53 let mut lines = std::io::stdin().lines();
54 let mut component_names = HashMap::<String, ComponentId>::new();
55 let mut component_info = HashMap::<ComponentId, ComponentInfo>::new();
56
57 println!("{PROMPT}");
58 loop {
59 print!("\n> ");
60 let _ = std::io::stdout().flush();
61 let Some(Ok(line)) = lines.next() else {
62 return;
63 };
64
65 if line.is_empty() {
66 return;
67 };
68
69 let Some((first, rest)) = line.trim().split_once(|c: char| c.is_whitespace()) else {
70 match &line.chars().next() {
71 Some('c') => println!("{COMPONENT_PROMPT}"),
72 Some('s') => println!("{ENTITY_PROMPT}"),
73 Some('q') => println!("{QUERY_PROMPT}"),
74 _ => println!("{PROMPT}"),
75 }
76 continue;
77 };
78
79 match &first[0..1] {
80 "c" => {
81 rest.split(',').for_each(|component| {
82 let mut component = component.split_whitespace();
83 let Some(name) = component.next() else {
84 return;
85 };
86 let size = match component.next().map(str::parse) {
87 Some(Ok(size)) => size,
88 _ => 0,
89 };
90 // Register our new component to the world with a layout specified by it's size
91 // SAFETY: [u64] is Send + Sync
92 let id = world.register_component_with_descriptor(unsafe {
93 ComponentDescriptor::new_with_layout(
94 name.to_string(),
95 StorageType::Table,
96 Layout::array::<u64>(size).unwrap(),
97 None,
98 true,
99 ComponentCloneBehavior::Default,
100 )
101 });
102 let Some(info) = world.components().get_info(id) else {
103 return;
104 };
105 component_names.insert(name.to_string(), id);
106 component_info.insert(id, info.clone());
107 println!("Component {} created with id: {}", name, id.index());
108 });
109 }
110 "s" => {
111 let mut to_insert_ids = Vec::new();
112 let mut to_insert_data = Vec::new();
113 rest.split(',').for_each(|component| {
114 let mut component = component.split_whitespace();
115 let Some(name) = component.next() else {
116 return;
117 };
118
119 // Get the id for the component with the given name
120 let Some(&id) = component_names.get(name) else {
121 println!("Component {name} does not exist");
122 return;
123 };
124
125 // Calculate the length for the array based on the layout created for this component id
126 let info = world.components().get_info(id).unwrap();
127 let len = info.layout().size() / size_of::<u64>();
128 let mut values: Vec<u64> = component
129 .take(len)
130 .filter_map(|value| value.parse::<u64>().ok())
131 .collect();
132 values.resize(len, 0);
133
134 // Collect the id and array to be inserted onto our entity
135 to_insert_ids.push(id);
136 to_insert_data.push(values);
137 });
138
139 let mut entity = world.spawn_empty();
140
141 // Construct an `OwningPtr` for each component in `to_insert_data`
142 let to_insert_ptr = to_owning_ptrs(&mut to_insert_data);
143
144 // SAFETY:
145 // - Component ids have been taken from the same world
146 // - Each array is created to the layout specified in the world
147 unsafe {
148 entity.insert_by_ids(&to_insert_ids, to_insert_ptr.into_iter());
149 }
150
151 println!("Entity spawned with id: {}", entity.id());
152 }
153 "q" => {
154 let mut builder = QueryBuilder::<FilteredEntityMut>::new(&mut world);
155 parse_query(rest, &mut builder, &component_names);
156 let mut query = builder.build();
157 query.iter_mut(&mut world).for_each(|filtered_entity| {
158 let terms = filtered_entity
159 .access()
160 .try_iter_component_access()
161 .unwrap()
162 .map(|component_access| {
163 let id = *component_access.index();
164 let ptr = filtered_entity.get_by_id(id).unwrap();
165 let info = component_info.get(&id).unwrap();
166 let len = info.layout().size() / size_of::<u64>();
167
168 // SAFETY:
169 // - All components are created with layout [u64]
170 // - len is calculated from the component descriptor
171 let data = unsafe {
172 std::slice::from_raw_parts_mut(
173 ptr.assert_unique().as_ptr().cast::<u64>(),
174 len,
175 )
176 };
177
178 // If we have write access, increment each value once
179 if matches!(component_access, ComponentAccessKind::Exclusive(_)) {
180 data.iter_mut().for_each(|data| {
181 *data += 1;
182 });
183 }
184
185 format!("{}: {:?}", info.name(), data[0..len].to_vec())
186 })
187 .collect::<Vec<_>>()
188 .join(", ");
189
190 println!("{}: {}", filtered_entity.id(), terms);
191 });
192 }
193 _ => continue,
194 }
195 }
196}Sourcepub fn location(&self) -> EntityLocation
pub fn location(&self) -> EntityLocation
Gets metadata indicating the location where the current entity is stored.
Sourcepub fn archetype(&self) -> &Archetype
pub fn archetype(&self) -> &Archetype
Returns the archetype that the current entity belongs to.
Sourcepub fn access(&self) -> &Access
pub fn access(&self) -> &Access
Returns a reference to the underlying Access.
Examples found in repository?
51fn main() {
52 let mut world = World::new();
53 let mut lines = std::io::stdin().lines();
54 let mut component_names = HashMap::<String, ComponentId>::new();
55 let mut component_info = HashMap::<ComponentId, ComponentInfo>::new();
56
57 println!("{PROMPT}");
58 loop {
59 print!("\n> ");
60 let _ = std::io::stdout().flush();
61 let Some(Ok(line)) = lines.next() else {
62 return;
63 };
64
65 if line.is_empty() {
66 return;
67 };
68
69 let Some((first, rest)) = line.trim().split_once(|c: char| c.is_whitespace()) else {
70 match &line.chars().next() {
71 Some('c') => println!("{COMPONENT_PROMPT}"),
72 Some('s') => println!("{ENTITY_PROMPT}"),
73 Some('q') => println!("{QUERY_PROMPT}"),
74 _ => println!("{PROMPT}"),
75 }
76 continue;
77 };
78
79 match &first[0..1] {
80 "c" => {
81 rest.split(',').for_each(|component| {
82 let mut component = component.split_whitespace();
83 let Some(name) = component.next() else {
84 return;
85 };
86 let size = match component.next().map(str::parse) {
87 Some(Ok(size)) => size,
88 _ => 0,
89 };
90 // Register our new component to the world with a layout specified by it's size
91 // SAFETY: [u64] is Send + Sync
92 let id = world.register_component_with_descriptor(unsafe {
93 ComponentDescriptor::new_with_layout(
94 name.to_string(),
95 StorageType::Table,
96 Layout::array::<u64>(size).unwrap(),
97 None,
98 true,
99 ComponentCloneBehavior::Default,
100 )
101 });
102 let Some(info) = world.components().get_info(id) else {
103 return;
104 };
105 component_names.insert(name.to_string(), id);
106 component_info.insert(id, info.clone());
107 println!("Component {} created with id: {}", name, id.index());
108 });
109 }
110 "s" => {
111 let mut to_insert_ids = Vec::new();
112 let mut to_insert_data = Vec::new();
113 rest.split(',').for_each(|component| {
114 let mut component = component.split_whitespace();
115 let Some(name) = component.next() else {
116 return;
117 };
118
119 // Get the id for the component with the given name
120 let Some(&id) = component_names.get(name) else {
121 println!("Component {name} does not exist");
122 return;
123 };
124
125 // Calculate the length for the array based on the layout created for this component id
126 let info = world.components().get_info(id).unwrap();
127 let len = info.layout().size() / size_of::<u64>();
128 let mut values: Vec<u64> = component
129 .take(len)
130 .filter_map(|value| value.parse::<u64>().ok())
131 .collect();
132 values.resize(len, 0);
133
134 // Collect the id and array to be inserted onto our entity
135 to_insert_ids.push(id);
136 to_insert_data.push(values);
137 });
138
139 let mut entity = world.spawn_empty();
140
141 // Construct an `OwningPtr` for each component in `to_insert_data`
142 let to_insert_ptr = to_owning_ptrs(&mut to_insert_data);
143
144 // SAFETY:
145 // - Component ids have been taken from the same world
146 // - Each array is created to the layout specified in the world
147 unsafe {
148 entity.insert_by_ids(&to_insert_ids, to_insert_ptr.into_iter());
149 }
150
151 println!("Entity spawned with id: {}", entity.id());
152 }
153 "q" => {
154 let mut builder = QueryBuilder::<FilteredEntityMut>::new(&mut world);
155 parse_query(rest, &mut builder, &component_names);
156 let mut query = builder.build();
157 query.iter_mut(&mut world).for_each(|filtered_entity| {
158 let terms = filtered_entity
159 .access()
160 .try_iter_component_access()
161 .unwrap()
162 .map(|component_access| {
163 let id = *component_access.index();
164 let ptr = filtered_entity.get_by_id(id).unwrap();
165 let info = component_info.get(&id).unwrap();
166 let len = info.layout().size() / size_of::<u64>();
167
168 // SAFETY:
169 // - All components are created with layout [u64]
170 // - len is calculated from the component descriptor
171 let data = unsafe {
172 std::slice::from_raw_parts_mut(
173 ptr.assert_unique().as_ptr().cast::<u64>(),
174 len,
175 )
176 };
177
178 // If we have write access, increment each value once
179 if matches!(component_access, ComponentAccessKind::Exclusive(_)) {
180 data.iter_mut().for_each(|data| {
181 *data += 1;
182 });
183 }
184
185 format!("{}: {:?}", info.name(), data[0..len].to_vec())
186 })
187 .collect::<Vec<_>>()
188 .join(", ");
189
190 println!("{}: {}", filtered_entity.id(), terms);
191 });
192 }
193 _ => continue,
194 }
195 }
196}Sourcepub fn contains<T>(&self) -> boolwhere
T: Component,
pub fn contains<T>(&self) -> boolwhere
T: Component,
Returns true if the current entity has a component of type T.
Otherwise, this returns false.
§Notes
If you do not know the concrete type of a component, consider using
Self::contains_id or Self::contains_type_id.
Sourcepub fn contains_id(&self, component_id: ComponentId) -> bool
pub fn contains_id(&self, component_id: ComponentId) -> bool
Returns true if the current entity has a component identified by component_id.
Otherwise, this returns false.
§Notes
- If you know the concrete type of the component, you should prefer
Self::contains. - If you know the component’s
TypeIdbut not itsComponentId, consider usingSelf::contains_type_id.
Sourcepub fn contains_type_id(&self, type_id: TypeId) -> bool
pub fn contains_type_id(&self, type_id: TypeId) -> bool
Returns true if the current entity has a component with the type identified by type_id.
Otherwise, this returns false.
§Notes
- If you know the concrete type of the component, you should prefer
Self::contains. - If you have a
ComponentIdinstead of aTypeId, consider usingSelf::contains_id.
Sourcepub fn get<T>(&self) -> Option<&T>where
T: Component,
pub fn get<T>(&self) -> Option<&T>where
T: Component,
Gets access to the component of type T for the current entity.
Returns None if the entity does not have a component of type T.
Sourcepub fn get_ref<T>(&self) -> Option<Ref<'_, T>>where
T: Component,
pub fn get_ref<T>(&self) -> Option<Ref<'_, T>>where
T: Component,
Gets access to the component of type T for the current entity,
including change detection information as a Ref.
Returns None if the entity does not have a component of type T.
Sourcepub fn get_mut<T>(&mut self) -> Option<Mut<'_, T>>
pub fn get_mut<T>(&mut self) -> Option<Mut<'_, T>>
Gets mutable access to the component of type T for the current entity.
Returns None if the entity does not have a component of type T.
Sourcepub fn into_mut<T>(self) -> Option<Mut<'w, T>>
pub fn into_mut<T>(self) -> Option<Mut<'w, T>>
Consumes self and gets mutable access to the component of type T
with the world 'w lifetime for the current entity.
Returns None if the entity does not have a component of type T.
Sourcepub unsafe fn into_mut_assume_mutable<T>(self) -> Option<Mut<'w, T>>where
T: Component,
pub unsafe fn into_mut_assume_mutable<T>(self) -> Option<Mut<'w, T>>where
T: Component,
Consumes self and gets mutable access to the component of type T
with the world 'w lifetime for the current entity.
Returns None if the entity does not have a component of type T.
§Safety
Tmust be a mutable component
Sourcepub fn get_change_ticks<T>(&self) -> Option<ComponentTicks>where
T: Component,
pub fn get_change_ticks<T>(&self) -> Option<ComponentTicks>where
T: Component,
Retrieves the change ticks for the given component. This can be useful for implementing change detection in custom runtimes.
Sourcepub fn get_change_ticks_by_id(
&self,
component_id: ComponentId,
) -> Option<ComponentTicks>
pub fn get_change_ticks_by_id( &self, component_id: ComponentId, ) -> Option<ComponentTicks>
Retrieves the change ticks for the given ComponentId. This can be useful for implementing change
detection in custom runtimes.
You should prefer to use the typed API Self::get_change_ticks where possible and only
use this in cases where the actual component types are not known at
compile time.
Sourcepub fn get_by_id(&self, component_id: ComponentId) -> Option<Ptr<'_>>
pub fn get_by_id(&self, component_id: ComponentId) -> Option<Ptr<'_>>
Gets the component of the given ComponentId from the entity.
You should prefer to use the typed API Self::get where possible and only
use this in cases where the actual component types are not known at
compile time.
Unlike FilteredEntityMut::get, this returns a raw pointer to the component,
which is only valid while the FilteredEntityMut is alive.
Examples found in repository?
38fn base_system(access_components: In<Vec<ComponentId>>, mut query: Query<FilteredEntityMut>) {
39 #[cfg(feature = "trace")]
40 let _span = tracing::info_span!("base_system", components = ?access_components.0, count = query.iter().len()).entered();
41
42 for mut filtered_entity in &mut query {
43 // We calculate Faulhaber's formula mod 256 with n = value and p = exponent.
44 // See https://en.wikipedia.org/wiki/Faulhaber%27s_formula
45 // The time is takes to compute this depends on the number of entities and the values in
46 // each entity. This is to ensure that each system takes a different amount of time.
47 let mut total: Wrapping<u8> = Wrapping(0);
48 let mut exponent: u32 = 1;
49 for component_id in &access_components.0 {
50 // find the value of the component
51 let ptr = filtered_entity.get_by_id(*component_id).unwrap();
52
53 // SAFETY: All components have a u8 layout
54 let value: u8 = unsafe { *ptr.deref::<u8>() };
55
56 for i in 0..=value {
57 let mut product = Wrapping(1);
58 for _ in 1..=exponent {
59 product *= Wrapping(i);
60 }
61 total += product;
62 }
63 exponent += 1;
64 }
65
66 // we assign this value to all the components we can write to
67 for component_id in &access_components.0 {
68 if let Some(ptr) = filtered_entity.get_mut_by_id(*component_id) {
69 // SAFETY: All components have a u8 layout
70 unsafe {
71 let mut value = ptr.with_type::<u8>();
72 *value = total.0;
73 }
74 }
75 }
76 }
77}More examples
51fn main() {
52 let mut world = World::new();
53 let mut lines = std::io::stdin().lines();
54 let mut component_names = HashMap::<String, ComponentId>::new();
55 let mut component_info = HashMap::<ComponentId, ComponentInfo>::new();
56
57 println!("{PROMPT}");
58 loop {
59 print!("\n> ");
60 let _ = std::io::stdout().flush();
61 let Some(Ok(line)) = lines.next() else {
62 return;
63 };
64
65 if line.is_empty() {
66 return;
67 };
68
69 let Some((first, rest)) = line.trim().split_once(|c: char| c.is_whitespace()) else {
70 match &line.chars().next() {
71 Some('c') => println!("{COMPONENT_PROMPT}"),
72 Some('s') => println!("{ENTITY_PROMPT}"),
73 Some('q') => println!("{QUERY_PROMPT}"),
74 _ => println!("{PROMPT}"),
75 }
76 continue;
77 };
78
79 match &first[0..1] {
80 "c" => {
81 rest.split(',').for_each(|component| {
82 let mut component = component.split_whitespace();
83 let Some(name) = component.next() else {
84 return;
85 };
86 let size = match component.next().map(str::parse) {
87 Some(Ok(size)) => size,
88 _ => 0,
89 };
90 // Register our new component to the world with a layout specified by it's size
91 // SAFETY: [u64] is Send + Sync
92 let id = world.register_component_with_descriptor(unsafe {
93 ComponentDescriptor::new_with_layout(
94 name.to_string(),
95 StorageType::Table,
96 Layout::array::<u64>(size).unwrap(),
97 None,
98 true,
99 ComponentCloneBehavior::Default,
100 )
101 });
102 let Some(info) = world.components().get_info(id) else {
103 return;
104 };
105 component_names.insert(name.to_string(), id);
106 component_info.insert(id, info.clone());
107 println!("Component {} created with id: {}", name, id.index());
108 });
109 }
110 "s" => {
111 let mut to_insert_ids = Vec::new();
112 let mut to_insert_data = Vec::new();
113 rest.split(',').for_each(|component| {
114 let mut component = component.split_whitespace();
115 let Some(name) = component.next() else {
116 return;
117 };
118
119 // Get the id for the component with the given name
120 let Some(&id) = component_names.get(name) else {
121 println!("Component {name} does not exist");
122 return;
123 };
124
125 // Calculate the length for the array based on the layout created for this component id
126 let info = world.components().get_info(id).unwrap();
127 let len = info.layout().size() / size_of::<u64>();
128 let mut values: Vec<u64> = component
129 .take(len)
130 .filter_map(|value| value.parse::<u64>().ok())
131 .collect();
132 values.resize(len, 0);
133
134 // Collect the id and array to be inserted onto our entity
135 to_insert_ids.push(id);
136 to_insert_data.push(values);
137 });
138
139 let mut entity = world.spawn_empty();
140
141 // Construct an `OwningPtr` for each component in `to_insert_data`
142 let to_insert_ptr = to_owning_ptrs(&mut to_insert_data);
143
144 // SAFETY:
145 // - Component ids have been taken from the same world
146 // - Each array is created to the layout specified in the world
147 unsafe {
148 entity.insert_by_ids(&to_insert_ids, to_insert_ptr.into_iter());
149 }
150
151 println!("Entity spawned with id: {}", entity.id());
152 }
153 "q" => {
154 let mut builder = QueryBuilder::<FilteredEntityMut>::new(&mut world);
155 parse_query(rest, &mut builder, &component_names);
156 let mut query = builder.build();
157 query.iter_mut(&mut world).for_each(|filtered_entity| {
158 let terms = filtered_entity
159 .access()
160 .try_iter_component_access()
161 .unwrap()
162 .map(|component_access| {
163 let id = *component_access.index();
164 let ptr = filtered_entity.get_by_id(id).unwrap();
165 let info = component_info.get(&id).unwrap();
166 let len = info.layout().size() / size_of::<u64>();
167
168 // SAFETY:
169 // - All components are created with layout [u64]
170 // - len is calculated from the component descriptor
171 let data = unsafe {
172 std::slice::from_raw_parts_mut(
173 ptr.assert_unique().as_ptr().cast::<u64>(),
174 len,
175 )
176 };
177
178 // If we have write access, increment each value once
179 if matches!(component_access, ComponentAccessKind::Exclusive(_)) {
180 data.iter_mut().for_each(|data| {
181 *data += 1;
182 });
183 }
184
185 format!("{}: {:?}", info.name(), data[0..len].to_vec())
186 })
187 .collect::<Vec<_>>()
188 .join(", ");
189
190 println!("{}: {}", filtered_entity.id(), terms);
191 });
192 }
193 _ => continue,
194 }
195 }
196}Sourcepub fn get_mut_by_id(
&mut self,
component_id: ComponentId,
) -> Option<MutUntyped<'_>>
pub fn get_mut_by_id( &mut self, component_id: ComponentId, ) -> Option<MutUntyped<'_>>
Gets a MutUntyped of the component of the given ComponentId from the entity.
You should prefer to use the typed API Self::get_mut where possible and only
use this in cases where the actual component types are not known at
compile time.
Unlike FilteredEntityMut::get_mut, this returns a raw pointer to the component,
which is only valid while the FilteredEntityMut is alive.
Examples found in repository?
38fn base_system(access_components: In<Vec<ComponentId>>, mut query: Query<FilteredEntityMut>) {
39 #[cfg(feature = "trace")]
40 let _span = tracing::info_span!("base_system", components = ?access_components.0, count = query.iter().len()).entered();
41
42 for mut filtered_entity in &mut query {
43 // We calculate Faulhaber's formula mod 256 with n = value and p = exponent.
44 // See https://en.wikipedia.org/wiki/Faulhaber%27s_formula
45 // The time is takes to compute this depends on the number of entities and the values in
46 // each entity. This is to ensure that each system takes a different amount of time.
47 let mut total: Wrapping<u8> = Wrapping(0);
48 let mut exponent: u32 = 1;
49 for component_id in &access_components.0 {
50 // find the value of the component
51 let ptr = filtered_entity.get_by_id(*component_id).unwrap();
52
53 // SAFETY: All components have a u8 layout
54 let value: u8 = unsafe { *ptr.deref::<u8>() };
55
56 for i in 0..=value {
57 let mut product = Wrapping(1);
58 for _ in 1..=exponent {
59 product *= Wrapping(i);
60 }
61 total += product;
62 }
63 exponent += 1;
64 }
65
66 // we assign this value to all the components we can write to
67 for component_id in &access_components.0 {
68 if let Some(ptr) = filtered_entity.get_mut_by_id(*component_id) {
69 // SAFETY: All components have a u8 layout
70 unsafe {
71 let mut value = ptr.with_type::<u8>();
72 *value = total.0;
73 }
74 }
75 }
76 }
77}Sourcepub fn spawned_by(&self) -> MaybeLocation
pub fn spawned_by(&self) -> MaybeLocation
Returns the source code location from which this entity has last been spawned.
Sourcepub fn spawn_tick(&self) -> Tick
pub fn spawn_tick(&self) -> Tick
Returns the Tick at which this entity has been spawned.
Trait Implementations§
Source§impl ContainsEntity for FilteredEntityMut<'_, '_>
impl ContainsEntity for FilteredEntityMut<'_, '_>
Source§impl<'w, 's, B> From<&'w EntityMutExcept<'_, 's, B>> for FilteredEntityMut<'w, 's>where
B: Bundle,
impl<'w, 's, B> From<&'w EntityMutExcept<'_, 's, B>> for FilteredEntityMut<'w, 's>where
B: Bundle,
Source§fn from(value: &'w EntityMutExcept<'_, 's, B>) -> FilteredEntityMut<'w, 's>
fn from(value: &'w EntityMutExcept<'_, 's, B>) -> FilteredEntityMut<'w, 's>
Source§impl<'w, 's> From<&'w FilteredEntityMut<'_, 's>> for FilteredEntityRef<'w, 's>
impl<'w, 's> From<&'w FilteredEntityMut<'_, 's>> for FilteredEntityRef<'w, 's>
Source§fn from(entity: &'w FilteredEntityMut<'_, 's>) -> FilteredEntityRef<'w, 's>
fn from(entity: &'w FilteredEntityMut<'_, 's>) -> FilteredEntityRef<'w, 's>
Source§impl<'a> From<&'a mut EntityMut<'_>> for FilteredEntityMut<'a, 'static>
impl<'a> From<&'a mut EntityMut<'_>> for FilteredEntityMut<'a, 'static>
Source§fn from(entity: &'a mut EntityMut<'_>) -> FilteredEntityMut<'a, 'static>
fn from(entity: &'a mut EntityMut<'_>) -> FilteredEntityMut<'a, 'static>
Source§impl<'a> From<&'a mut EntityWorldMut<'_>> for FilteredEntityMut<'a, 'static>
impl<'a> From<&'a mut EntityWorldMut<'_>> for FilteredEntityMut<'a, 'static>
Source§fn from(entity: &'a mut EntityWorldMut<'_>) -> FilteredEntityMut<'a, 'static>
fn from(entity: &'a mut EntityWorldMut<'_>) -> FilteredEntityMut<'a, 'static>
Source§impl<'a> From<EntityMut<'a>> for FilteredEntityMut<'a, 'static>
impl<'a> From<EntityMut<'a>> for FilteredEntityMut<'a, 'static>
Source§fn from(entity: EntityMut<'a>) -> FilteredEntityMut<'a, 'static>
fn from(entity: EntityMut<'a>) -> FilteredEntityMut<'a, 'static>
Source§impl<'a> From<EntityWorldMut<'a>> for FilteredEntityMut<'a, 'static>
impl<'a> From<EntityWorldMut<'a>> for FilteredEntityMut<'a, 'static>
Source§fn from(entity: EntityWorldMut<'a>) -> FilteredEntityMut<'a, 'static>
fn from(entity: EntityWorldMut<'a>) -> FilteredEntityMut<'a, 'static>
Source§impl<'w, 's> From<FilteredEntityMut<'w, 's>> for FilteredEntityRef<'w, 's>
impl<'w, 's> From<FilteredEntityMut<'w, 's>> for FilteredEntityRef<'w, 's>
Source§fn from(entity: FilteredEntityMut<'w, 's>) -> FilteredEntityRef<'w, 's>
fn from(entity: FilteredEntityMut<'w, 's>) -> FilteredEntityRef<'w, 's>
Source§impl Hash for FilteredEntityMut<'_, '_>
impl Hash for FilteredEntityMut<'_, '_>
Source§impl Ord for FilteredEntityMut<'_, '_>
impl Ord for FilteredEntityMut<'_, '_>
Source§fn cmp(&self, other: &FilteredEntityMut<'_, '_>) -> Ordering
fn cmp(&self, other: &FilteredEntityMut<'_, '_>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for FilteredEntityMut<'_, '_>
impl PartialEq for FilteredEntityMut<'_, '_>
Source§impl PartialOrd for FilteredEntityMut<'_, '_>
impl PartialOrd for FilteredEntityMut<'_, '_>
Source§fn partial_cmp(&self, other: &FilteredEntityMut<'_, '_>) -> Option<Ordering>
fn partial_cmp(&self, other: &FilteredEntityMut<'_, '_>) -> Option<Ordering>
FilteredEntityMut’s comparison trait implementations match the underlying Entity,
and cannot discern between different worlds.
Source§impl<'a, 'b> QueryData for FilteredEntityMut<'a, 'b>
SAFETY: access of FilteredEntityRef is a subset of FilteredEntityMut
impl<'a, 'b> QueryData for FilteredEntityMut<'a, 'b>
SAFETY: access of FilteredEntityRef is a subset of FilteredEntityMut
Source§const IS_READ_ONLY: bool = false
const IS_READ_ONLY: bool = false
Source§type ReadOnly = FilteredEntityRef<'a, 'b>
type ReadOnly = FilteredEntityRef<'a, 'b>
QueryData, which satisfies the ReadOnlyQueryData trait.Source§type Item<'w, 's> = FilteredEntityMut<'w, 's>
type Item<'w, 's> = FilteredEntityMut<'w, 's>
WorldQuery
This will be the data retrieved by the query,
and is visible to the end user when calling e.g. Query<Self>::get.Source§fn shrink<'wlong, 'wshort, 's>(
item: <FilteredEntityMut<'a, 'b> as QueryData>::Item<'wlong, 's>,
) -> <FilteredEntityMut<'a, 'b> as QueryData>::Item<'wshort, 's>where
'wlong: 'wshort,
fn shrink<'wlong, 'wshort, 's>(
item: <FilteredEntityMut<'a, 'b> as QueryData>::Item<'wlong, 's>,
) -> <FilteredEntityMut<'a, 'b> as QueryData>::Item<'wshort, 's>where
'wlong: 'wshort,
Source§fn provide_extra_access(
state: &mut <FilteredEntityMut<'a, 'b> as WorldQuery>::State,
access: &mut Access,
available_access: &Access,
)
fn provide_extra_access( state: &mut <FilteredEntityMut<'a, 'b> as WorldQuery>::State, access: &mut Access, available_access: &Access, )
update_component_access.
Implementations may add additional access that is a subset of available_access
and does not conflict with anything in access,
and must update access to include that access. Read moreSource§unsafe fn fetch<'w, 's>(
access: &'s <FilteredEntityMut<'a, 'b> as WorldQuery>::State,
fetch: &mut <FilteredEntityMut<'a, 'b> as WorldQuery>::Fetch<'w>,
entity: Entity,
_table_row: TableRow,
) -> <FilteredEntityMut<'a, 'b> as QueryData>::Item<'w, 's>
unsafe fn fetch<'w, 's>( access: &'s <FilteredEntityMut<'a, 'b> as WorldQuery>::State, fetch: &mut <FilteredEntityMut<'a, 'b> as WorldQuery>::Fetch<'w>, entity: Entity, _table_row: TableRow, ) -> <FilteredEntityMut<'a, 'b> as QueryData>::Item<'w, 's>
Self::Item for either the given entity in the current Table,
or for the given entity in the current Archetype. This must always be called after
WorldQuery::set_table with a table_row in the range of the current Table or after
WorldQuery::set_archetype with an entity in the current archetype.
Accesses components registered in WorldQuery::update_component_access. Read moreSource§impl<'a> TryFrom<&'a FilteredEntityMut<'_, '_>> for EntityRef<'a>
impl<'a> TryFrom<&'a FilteredEntityMut<'_, '_>> for EntityRef<'a>
Source§type Error = TryFromFilteredError
type Error = TryFromFilteredError
Source§fn try_from(
entity: &'a FilteredEntityMut<'_, '_>,
) -> Result<EntityRef<'a>, <EntityRef<'a> as TryFrom<&'a FilteredEntityMut<'_, '_>>>::Error>
fn try_from( entity: &'a FilteredEntityMut<'_, '_>, ) -> Result<EntityRef<'a>, <EntityRef<'a> as TryFrom<&'a FilteredEntityMut<'_, '_>>>::Error>
Source§impl<'a> TryFrom<&'a mut FilteredEntityMut<'_, '_>> for EntityMut<'a>
impl<'a> TryFrom<&'a mut FilteredEntityMut<'_, '_>> for EntityMut<'a>
Source§type Error = TryFromFilteredError
type Error = TryFromFilteredError
Source§fn try_from(
entity: &'a mut FilteredEntityMut<'_, '_>,
) -> Result<EntityMut<'a>, <EntityMut<'a> as TryFrom<&'a mut FilteredEntityMut<'_, '_>>>::Error>
fn try_from( entity: &'a mut FilteredEntityMut<'_, '_>, ) -> Result<EntityMut<'a>, <EntityMut<'a> as TryFrom<&'a mut FilteredEntityMut<'_, '_>>>::Error>
Source§impl<'a> TryFrom<FilteredEntityMut<'a, '_>> for EntityMut<'a>
impl<'a> TryFrom<FilteredEntityMut<'a, '_>> for EntityMut<'a>
Source§type Error = TryFromFilteredError
type Error = TryFromFilteredError
Source§fn try_from(
entity: FilteredEntityMut<'a, '_>,
) -> Result<EntityMut<'a>, <EntityMut<'a> as TryFrom<FilteredEntityMut<'a, '_>>>::Error>
fn try_from( entity: FilteredEntityMut<'a, '_>, ) -> Result<EntityMut<'a>, <EntityMut<'a> as TryFrom<FilteredEntityMut<'a, '_>>>::Error>
Source§impl<'a> TryFrom<FilteredEntityMut<'a, '_>> for EntityRef<'a>
impl<'a> TryFrom<FilteredEntityMut<'a, '_>> for EntityRef<'a>
Source§type Error = TryFromFilteredError
type Error = TryFromFilteredError
Source§fn try_from(
entity: FilteredEntityMut<'a, '_>,
) -> Result<EntityRef<'a>, <EntityRef<'a> as TryFrom<FilteredEntityMut<'a, '_>>>::Error>
fn try_from( entity: FilteredEntityMut<'a, '_>, ) -> Result<EntityRef<'a>, <EntityRef<'a> as TryFrom<FilteredEntityMut<'a, '_>>>::Error>
Source§impl WorldQuery for FilteredEntityMut<'_, '_>
SAFETY: The accesses of Self::ReadOnly are a subset of the accesses of Self
impl WorldQuery for FilteredEntityMut<'_, '_>
SAFETY: The accesses of Self::ReadOnly are a subset of the accesses of Self
Source§const IS_DENSE: bool = false
const IS_DENSE: bool = false
Source§type Fetch<'w> = EntityFetch<'w>
type Fetch<'w> = EntityFetch<'w>
WorldQuery to compute Self::Item for each entity.Source§type State = Access
type State = Access
Self::Fetch. This will be cached inside QueryState,
so it is best to move as much data / computation here as possible to reduce the cost of
constructing Self::Fetch.Source§fn shrink_fetch<'wlong, 'wshort>(
fetch: <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'wlong>,
) -> <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'wshort>where
'wlong: 'wshort,
fn shrink_fetch<'wlong, 'wshort>(
fetch: <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'wlong>,
) -> <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'wshort>where
'wlong: 'wshort,
Source§unsafe fn init_fetch<'w, 's>(
world: UnsafeWorldCell<'w>,
_state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State,
last_run: Tick,
this_run: Tick,
) -> <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>
unsafe fn init_fetch<'w, 's>( world: UnsafeWorldCell<'w>, _state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State, last_run: Tick, this_run: Tick, ) -> <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>
Self::Fetch,
by combining data from the World with the cached Self::State.
Readonly accesses resources registered in WorldQuery::update_component_access. Read moreSource§unsafe fn set_archetype<'w, 's>(
_fetch: &mut <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>,
_state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State,
_: &'w Archetype,
_table: &Table,
)
unsafe fn set_archetype<'w, 's>( _fetch: &mut <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>, _state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State, _: &'w Archetype, _table: &Table, )
Archetype. This will always be called on
archetypes that match this WorldQuery. Read moreSource§unsafe fn set_table<'w, 's>(
_fetch: &mut <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>,
_state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State,
_: &'w Table,
)
unsafe fn set_table<'w, 's>( _fetch: &mut <FilteredEntityMut<'_, '_> as WorldQuery>::Fetch<'w>, _state: &'s <FilteredEntityMut<'_, '_> as WorldQuery>::State, _: &'w Table, )
Table. This will always be called on tables
that match this WorldQuery. Read moreSource§fn update_component_access(
state: &<FilteredEntityMut<'_, '_> as WorldQuery>::State,
filtered_access: &mut FilteredAccess,
)
fn update_component_access( state: &<FilteredEntityMut<'_, '_> as WorldQuery>::State, filtered_access: &mut FilteredAccess, )
Source§fn init_state(
_world: &mut World,
) -> <FilteredEntityMut<'_, '_> as WorldQuery>::State
fn init_state( _world: &mut World, ) -> <FilteredEntityMut<'_, '_> as WorldQuery>::State
State for this WorldQuery type.Source§fn get_state(
_components: &Components,
) -> Option<<FilteredEntityMut<'_, '_> as WorldQuery>::State>
fn get_state( _components: &Components, ) -> Option<<FilteredEntityMut<'_, '_> as WorldQuery>::State>
Source§fn matches_component_set(
_state: &<FilteredEntityMut<'_, '_> as WorldQuery>::State,
_set_contains_id: &impl Fn(ComponentId) -> bool,
) -> bool
fn matches_component_set( _state: &<FilteredEntityMut<'_, '_> as WorldQuery>::State, _set_contains_id: &impl Fn(ComponentId) -> bool, ) -> bool
impl EntityEquivalent for FilteredEntityMut<'_, '_>
impl Eq for FilteredEntityMut<'_, '_>
Auto Trait Implementations§
impl<'w, 's> Freeze for FilteredEntityMut<'w, 's>
impl<'w, 's> !RefUnwindSafe for FilteredEntityMut<'w, 's>
impl<'w, 's> Send for FilteredEntityMut<'w, 's>
impl<'w, 's> Sync for FilteredEntityMut<'w, 's>
impl<'w, 's> Unpin for FilteredEntityMut<'w, 's>
impl<'w, 's> !UnwindSafe for FilteredEntityMut<'w, 's>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.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
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Source§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.