pub enum FogFalloff {
Linear {
start: f32,
end: f32,
},
Exponential {
density: f32,
},
ExponentialSquared {
density: f32,
},
Atmospheric {
extinction: Vec3,
inscattering: Vec3,
},
}
Expand description
Allows switching between different fog falloff modes, and configuring their parameters.
§Convenience Methods
When using non-linear fog modes it can be hard to determine the right parameter values for a given scene.
For easier artistic control, instead of creating the enum variants directly, you can use the visibility-based convenience methods:
-
For
FogFalloff::Exponential
: -
For
FogFalloff::ExponentialSquared
: -
For
FogFalloff::Atmospheric
:
Variants§
Linear
A linear fog falloff that grows in intensity between start
and end
distances.
This falloff mode is simpler to control than other modes, however it can produce results that look “artificial”, depending on the scene.
§Formula
The fog intensity for a given point in the scene is determined by the following formula:
let fog_intensity = 1.0 - ((end - distance) / (end - start)).clamp(0.0, 1.0);
Fields
Exponential
An exponential fog falloff with a given density
.
Initially gains intensity quickly with distance, then more slowly. Typically produces more natural results than FogFalloff::Linear
,
but is a bit harder to control.
To move the fog “further away”, use lower density values. To move it “closer” use higher density values.
§Tips
- Use the
FogFalloff::from_visibility()
convenience method to create an exponential falloff with the proper density for a desired visibility distance in world units; - It’s not unusual to have very large or very small values for the density, depending on the scene
scale. Typically, for scenes with objects in the scale of thousands of units, you might want density values
in the ballpark of
0.001
. Conversely, for really small scale scenes you might want really high values of density; - Combine the
density
parameter with theDistanceFog
color
’s alpha channel for easier artistic control.
§Formula
The fog intensity for a given point in the scene is determined by the following formula:
let fog_intensity = 1.0 - 1.0 / (distance * density).exp();
Fields
ExponentialSquared
A squared exponential fog falloff with a given density
.
Similar to FogFalloff::Exponential
, but grows more slowly in intensity for closer distances
before “catching up”.
To move the fog “further away”, use lower density values. To move it “closer” use higher density values.
§Tips
- Use the
FogFalloff::from_visibility_squared()
convenience method to create an exponential squared falloff with the proper density for a desired visibility distance in world units; - Combine the
density
parameter with theDistanceFog
color
’s alpha channel for easier artistic control.
§Formula
The fog intensity for a given point in the scene is determined by the following formula:
let fog_intensity = 1.0 - 1.0 / (distance * density).squared().exp();
Fields
Atmospheric
A more general form of the FogFalloff::Exponential
mode. The falloff formula is separated into
two terms, extinction
and inscattering
, for a somewhat simplified atmospheric scattering model.
Additionally, individual color channels can have their own density values, resulting in a total of
six different configuration parameters.
§Tips
- Use the
FogFalloff::from_visibility_colors()
orFogFalloff::from_visibility_color()
convenience methods to create an atmospheric falloff with the proper densities for a desired visibility distance in world units and extinction and inscattering colors; - Combine the atmospheric fog parameters with the
DistanceFog
color
’s alpha channel for easier artistic control.
§Formula
Unlike other modes, atmospheric falloff doesn’t use a simple intensity-based blend of fog color with object color. Instead, it calculates per-channel extinction and inscattering factors, which are then used to calculate the final color.
let extinction_factor = 1.0 - 1.0 / (distance * extinction).exp();
let inscattering_factor = 1.0 - 1.0 / (distance * inscattering).exp();
let result = input_color * (1.0 - extinction_factor) + fog_color * inscattering_factor;
§Equivalence to FogFalloff::Exponential
For a density value of D
, the following two falloff modes will produce identical visual results:
let exponential = FogFalloff::Exponential {
density: D,
};
let atmospheric = FogFalloff::Atmospheric {
extinction: Vec3::new(D, D, D),
inscattering: Vec3::new(D, D, D),
};
Note: While the results are identical, FogFalloff::Atmospheric
is computationally more expensive.
Fields
extinction: Vec3
Controls how much light is removed due to atmospheric “extinction”, i.e. loss of light due to photons being absorbed by atmospheric particles.
Each component can be thought of as an independent per R
/G
/B
channel density
factor from
FogFalloff::Exponential
: Multiplier applied to the world distance (within the fog
falloff calculation) for that specific channel.
Note:
This value is not a Color
, since it affects the channels exponentially in a non-intuitive way.
For artistic control, use the FogFalloff::from_visibility_colors()
convenience method.
inscattering: Vec3
Controls how much light is added due to light scattering from the sun through the atmosphere.
Each component can be thought of as an independent per R
/G
/B
channel density
factor from
FogFalloff::Exponential
: A multiplier applied to the world distance (within the fog
falloff calculation) for that specific channel.
Note:
This value is not a Color
, since it affects the channels exponentially in a non-intuitive way.
For artistic control, use the FogFalloff::from_visibility_colors()
convenience method.
Implementations§
Source§impl FogFalloff
impl FogFalloff
Sourcepub const REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD: f32 = 0.0500000007f32
pub const REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD: f32 = 0.0500000007f32
A 2% contrast threshold was originally proposed by Koschmieder, being the minimum visual contrast at which a human observer could detect an object. We use a revised 5% contrast threshold, deemed more realistic for typical human observers.
Sourcepub fn from_visibility(visibility: f32) -> FogFalloff
pub fn from_visibility(visibility: f32) -> FogFalloff
Creates a FogFalloff::Exponential
value from the given visibility distance in world units,
using the revised Koschmieder contrast threshold, FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD
.
Sourcepub fn from_visibility_contrast(
visibility: f32,
contrast_threshold: f32,
) -> FogFalloff
pub fn from_visibility_contrast( visibility: f32, contrast_threshold: f32, ) -> FogFalloff
Creates a FogFalloff::Exponential
value from the given visibility distance in world units,
and a given contrast threshold in the range of 0.0
to 1.0
.
Sourcepub fn from_visibility_squared(visibility: f32) -> FogFalloff
pub fn from_visibility_squared(visibility: f32) -> FogFalloff
Creates a FogFalloff::ExponentialSquared
value from the given visibility distance in world units,
using the revised Koschmieder contrast threshold, FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD
.
Sourcepub fn from_visibility_contrast_squared(
visibility: f32,
contrast_threshold: f32,
) -> FogFalloff
pub fn from_visibility_contrast_squared( visibility: f32, contrast_threshold: f32, ) -> FogFalloff
Creates a FogFalloff::ExponentialSquared
value from the given visibility distance in world units,
and a given contrast threshold in the range of 0.0
to 1.0
.
Sourcepub fn from_visibility_color(
visibility: f32,
extinction_inscattering_color: Color,
) -> FogFalloff
pub fn from_visibility_color( visibility: f32, extinction_inscattering_color: Color, ) -> FogFalloff
Creates a FogFalloff::Atmospheric
value from the given visibility distance in world units,
and a shared color for both extinction and inscattering, using the revised Koschmieder contrast threshold,
FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD
.
Sourcepub fn from_visibility_colors(
visibility: f32,
extinction_color: Color,
inscattering_color: Color,
) -> FogFalloff
pub fn from_visibility_colors( visibility: f32, extinction_color: Color, inscattering_color: Color, ) -> FogFalloff
Creates a FogFalloff::Atmospheric
value from the given visibility distance in world units,
extinction and inscattering colors, using the revised Koschmieder contrast threshold,
FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD
.
§Tips
- Alpha values of the provided colors can modulate the
extinction
andinscattering
effects; - Using an
extinction_color
ofColor::WHITE
orColor::NONE
disables the extinction effect; - Using an
inscattering_color
ofColor::BLACK
orColor::NONE
disables the inscattering effect.
Sourcepub fn from_visibility_contrast_color(
visibility: f32,
contrast_threshold: f32,
extinction_inscattering_color: Color,
) -> FogFalloff
pub fn from_visibility_contrast_color( visibility: f32, contrast_threshold: f32, extinction_inscattering_color: Color, ) -> FogFalloff
Creates a FogFalloff::Atmospheric
value from the given visibility distance in world units,
a contrast threshold in the range of 0.0
to 1.0
, and a shared color for both extinction and inscattering.
Sourcepub fn from_visibility_contrast_colors(
visibility: f32,
contrast_threshold: f32,
extinction_color: Color,
inscattering_color: Color,
) -> FogFalloff
pub fn from_visibility_contrast_colors( visibility: f32, contrast_threshold: f32, extinction_color: Color, inscattering_color: Color, ) -> FogFalloff
Creates a FogFalloff::Atmospheric
value from the given visibility distance in world units,
a contrast threshold in the range of 0.0
to 1.0
, extinction and inscattering colors.
§Tips
- Alpha values of the provided colors can modulate the
extinction
andinscattering
effects; - Using an
extinction_color
ofColor::WHITE
orColor::NONE
disables the extinction effect; - Using an
inscattering_color
ofColor::BLACK
orColor::NONE
disables the inscattering effect.
Sourcepub fn koschmieder(v: f32, c_t: f32) -> f32
pub fn koschmieder(v: f32, c_t: f32) -> f32
Calculates the extinction coefficient β, from V and Cₜ, where:
- Cₜ is the contrast threshold, in the range of
0.0
to1.0
- V is the visibility distance in which a perfectly black object is still identifiable against the horizon sky within the contrast threshold
We start with Koschmieder’s equation:
-ln(Cₜ)
V = ─────────
β
Multiplying both sides by β/V, that gives us:
-ln(Cₜ)
β = ─────────
V
See:
Trait Implementations§
Source§impl Clone for FogFalloff
impl Clone for FogFalloff
Source§fn clone(&self) -> FogFalloff
fn clone(&self) -> FogFalloff
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FogFalloff
impl Debug for FogFalloff
Source§impl Enum for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Enum for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Source§fn field(&self, __name_param: &str) -> Option<&(dyn PartialReflect + 'static)>
fn field(&self, __name_param: &str) -> Option<&(dyn PartialReflect + 'static)>
Source§fn field_at(
&self,
__index_param: usize,
) -> Option<&(dyn PartialReflect + 'static)>
fn field_at( &self, __index_param: usize, ) -> Option<&(dyn PartialReflect + 'static)>
Source§fn field_mut(
&mut self,
__name_param: &str,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_mut( &mut self, __name_param: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>
Source§fn field_at_mut(
&mut self,
__index_param: usize,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_at_mut( &mut self, __index_param: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>
Source§fn index_of(&self, __name_param: &str) -> Option<usize>
fn index_of(&self, __name_param: &str) -> Option<usize>
Source§fn name_at(&self, __index_param: usize) -> Option<&str>
fn name_at(&self, __index_param: usize) -> Option<&str>
Source§fn iter_fields(&self) -> VariantFieldIter<'_> ⓘ
fn iter_fields(&self) -> VariantFieldIter<'_> ⓘ
Source§fn variant_name(&self) -> &str
fn variant_name(&self) -> &str
Source§fn variant_index(&self) -> usize
fn variant_index(&self) -> usize
Source§fn variant_type(&self) -> VariantType
fn variant_type(&self) -> VariantType
fn clone_dynamic(&self) -> DynamicEnum
Source§fn is_variant(&self, variant_type: VariantType) -> bool
fn is_variant(&self, variant_type: VariantType) -> bool
Source§fn variant_path(&self) -> String
fn variant_path(&self) -> String
Source§impl FromReflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl FromReflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Source§fn from_reflect(__param0: &(dyn PartialReflect + 'static)) -> Option<FogFalloff>
fn from_reflect(__param0: &(dyn PartialReflect + 'static)) -> Option<FogFalloff>
Self
from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read moreSource§impl GetTypeRegistration for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl GetTypeRegistration for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration
for this type.Source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
Source§impl PartialReflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl PartialReflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn clone_value(&self) -> Box<dyn PartialReflect>
fn clone_value(&self) -> Box<dyn PartialReflect>
Reflect
trait object. Read moreSource§fn try_apply(
&mut self,
__value_param: &(dyn PartialReflect + 'static),
) -> Result<(), ApplyError>
fn try_apply( &mut self, __value_param: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Source§fn reflect_owned(self: Box<FogFalloff>) -> ReflectOwned
fn reflect_owned(self: Box<FogFalloff>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<FogFalloff>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<FogFalloff>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
Source§fn into_partial_reflect(self: Box<FogFalloff>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<FogFalloff>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
Source§fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn reflect_partial_eq(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<bool>
fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>
Source§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl Reflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Reflect for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Source§fn into_any(self: Box<FogFalloff>) -> Box<dyn Any>
fn into_any(self: Box<FogFalloff>) -> Box<dyn Any>
Box<dyn Any>
. Read moreSource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any
. Read moreSource§fn into_reflect(self: Box<FogFalloff>) -> Box<dyn Reflect>
fn into_reflect(self: Box<FogFalloff>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Source§impl TypePath for FogFalloff
impl TypePath for FogFalloff
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl Typed for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Typed for FogFalloffwhere
FogFalloff: Any + Send + Sync,
f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Vec3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
Auto Trait Implementations§
impl Freeze for FogFalloff
impl RefUnwindSafe for FogFalloff
impl Send for FogFalloff
impl Sync for FogFalloff
impl Unpin for FogFalloff
impl UnwindSafe for FogFalloff
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
Source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info
.Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moreSource§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 more