pub struct OrbitCam {Show 34 fields
pub focus: Vec3,
pub radius: Option<f32>,
pub yaw: Option<f32>,
pub pitch: Option<f32>,
pub target_focus: Vec3,
pub target_yaw: f32,
pub target_pitch: f32,
pub target_radius: f32,
pub yaw_upper_limit: Option<f32>,
pub yaw_lower_limit: Option<f32>,
pub pitch_upper_limit: Option<f32>,
pub pitch_lower_limit: Option<f32>,
pub focus_bounds_origin: Vec3,
pub focus_bounds_shape: Option<FocusBoundsShape>,
pub zoom_upper_limit: Option<f32>,
pub zoom_lower_limit: f32,
pub orbit_sensitivity: f32,
pub orbit_smoothness: f32,
pub pan_sensitivity: f32,
pub pan_smoothness: f32,
pub zoom_sensitivity: f32,
pub zoom_smoothness: f32,
pub button_orbit: MouseButton,
pub button_pan: MouseButton,
pub button_zoom: Option<MouseButton>,
pub button_zoom_axis: ButtonZoomAxis,
pub modifier_orbit: Option<KeyCode>,
pub modifier_pan: Option<KeyCode>,
pub input_control: Option<InputControl>,
pub upside_down_policy: UpsideDownPolicy,
pub initialization: InitializationState,
pub force_update: ForceUpdate,
pub axis: [Vec3; 3],
pub time_source: TimeSource,
}Expand description
Tags an entity as capable of panning and orbiting.
Provides a way to configure the camera’s behaviour and controls.
§Example
fn setup(mut commands: Commands) {
commands.spawn((
Transform::from_translation(Vec3::new(0.0, 1.5, 5.0)),
OrbitCam::default(),
));
}Fields§
§focus: Vec3The point to orbit around, and what the camera looks at. Updated automatically.
If you want to change the focus programmatically after initialization, set target_focus
instead.
Defaults to Vec3::ZERO.
radius: Option<f32>The radius of the orbit, or the distance from the focus point.
For orthographic projection, this is ignored, and the projection’s scale is used instead.
If set to None, it will be calculated from the camera’s current position during
initialization.
Automatically updated.
Defaults to None.
yaw: Option<f32>Rotation in radians around the global Y axis (longitudinal). Updated automatically.
If both yaw and pitch are 0.0, then the camera will be looking forward, i.e. in
the Vec3::NEG_Z direction, with up being Vec3::Y.
If set to None, it will be calculated from the camera’s current position during
initialization.
You should not update this after initialization - use target_yaw instead.
Defaults to None.
pitch: Option<f32>Rotation in radians around the local X axis (latitudinal). Updated automatically.
If both yaw and pitch are 0.0, then the camera will be looking forward, i.e. in
the Vec3::NEG_Z direction, with up being Vec3::Y.
If set to None, it will be calculated from the camera’s current position during
initialization.
You should not update this after initialization - use target_pitch instead.
Defaults to None.
target_focus: Vec3The target focus point. The camera will smoothly transition to this value. Updated
automatically, but you can also update it manually to control the camera independently of
the mouse controls, e.g. with the keyboard.
Defaults to Vec3::ZERO.
target_yaw: f32The target yaw value. The camera will smoothly transition to this value. Updated
automatically, but you can also update it manually to control the camera independently of
the mouse controls, e.g. with the keyboard.
Defaults to 0.0.
target_pitch: f32The target pitch value. The camera will smoothly transition to this value Updated
automatically, but you can also update it manually to control the camera independently of
the mouse controls, e.g. with the keyboard.
Defaults to 0.0.
target_radius: f32The target radius value. The camera will smoothly transition to this value. Updated
automatically, but you can also update it manually to control the camera independently of
the mouse controls, e.g. with the keyboard.
Defaults to 1.0.
yaw_upper_limit: Option<f32>Upper limit on the yaw value, in radians. Use this to restrict the maximum rotation
around the global Y axis.
Defaults to None.
yaw_lower_limit: Option<f32>Lower limit on the yaw value, in radians. Use this to restrict the maximum rotation
around the global Y axis.
Defaults to None.
pitch_upper_limit: Option<f32>Upper limit on the pitch value, in radians. Use this to restrict the maximum rotation
around the local X axis.
Defaults to None.
pitch_lower_limit: Option<f32>Lower limit on the pitch value, in radians. Use this to restrict the maximum rotation
around the local X axis.
Defaults to None.
focus_bounds_origin: Vec3The origin for a shape to restrict the cameras focus position.
Defaults to Vec3::ZERO.
focus_bounds_shape: Option<FocusBoundsShape>The shape (Sphere or Cuboid) that the focus is restricted by. Centered on the
focus_bounds_origin.
Defaults to None.
zoom_upper_limit: Option<f32>Upper limit on the zoom. This applies to radius, in the case of using a perspective
camera, or the projection’s scale in the case of using an orthographic camera.
Defaults to None.
zoom_lower_limit: f32Lower limit on the zoom. This applies to radius, in the case of using a perspective
camera, or the projection’s scale in the case of using an orthographic camera.
Should always be >0 otherwise you’ll get stuck at 0.
Defaults to 1e-7.
orbit_sensitivity: f32The sensitivity of the orbiting motion. A value of 0.0 disables orbiting.
Defaults to 1.0.
orbit_smoothness: f32How much smoothing is applied to the orbit motion. A value of 0.0 disables smoothing,
so there’s a 1:1 mapping of input to camera position. A value of 1.0 is infinite
smoothing.
Defaults to 0.8.
pan_sensitivity: f32The sensitivity of the panning motion. A value of 0.0 disables panning.
Defaults to 1.0.
pan_smoothness: f32How much smoothing is applied to the panning motion. A value of 0.0 disables smoothing,
so there’s a 1:1 mapping of input to camera position. A value of 1.0 is infinite
smoothing.
Defaults to 0.6.
zoom_sensitivity: f32The sensitivity of moving the camera closer or further way using the scroll wheel.
A value of 0.0 disables zooming.
Defaults to 1.0.
zoom_smoothness: f32How much smoothing is applied to the zoom motion. A value of 0.0 disables smoothing,
so there’s a 1:1 mapping of input to camera position. A value of 1.0 is infinite
smoothing.
Defaults to 0.8.
Note that this setting does not apply to pixel-based scroll events, as they are typically
already smooth. It only applies to line-based scroll events.
Button used to orbit the camera.
Defaults to Button::Left.
Button used to pan the camera.
Defaults to Button::Right.
Button used to zoom the camera, by holding it down and moving the mouse forward and back.
Defaults to None.
Which axis should zoom the camera when using button_zoom.
Defaults to ButtonZoomAxis::Y.
modifier_orbit: Option<KeyCode>Key that must be pressed for button_orbit to work.
Defaults to None (no modifier).
modifier_pan: Option<KeyCode>Key that must be pressed for button_pan to work.
Defaults to None (no modifier).
input_control: Option<InputControl>Interactive input configuration.
Set to None to disable all user input for this camera.
Defaults to Some(InputControl::default()).
upside_down_policy: UpsideDownPolicyWhether to allow the camera to go upside down.
Defaults to UpsideDownPolicy::Prevent.
initialization: InitializationStateWhether OrbitCam has been initialized with the initial config.
Set to InitializationState::Complete if you want the camera to smoothly animate to its
initial position.
Defaults to InitializationState::Pending.
force_update: ForceUpdateWhether to update the camera’s transform regardless of whether there are any
changes/input. Set to ForceUpdate::Pending if you want to modify values directly.
This will be automatically set back to ForceUpdate::Idle after one frame.
Defaults to ForceUpdate::Idle.
axis: [Vec3; 3]Axis order definition. This can be used to e.g. define a different default
up direction. The default up is Y, but if you want the camera rotated.
The axis can be switched.
Defaults to [Vec3::X, Vec3::Y, Vec3::Z].
time_source: TimeSourceWhich time source drives camera smoothing.
Defaults to TimeSource::Virtual.
Trait Implementations§
Source§impl Component for OrbitCam
Required Components: Camera3d, [OrbitDragState].
impl Component for OrbitCam
Required Components: Camera3d, [OrbitDragState].
A component’s Required Components are inserted whenever it is inserted. Note that this will also insert the required components of the required components, recursively, in depth-first order.
Source§const STORAGE_TYPE: StorageType = ::bevy::ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = ::bevy::ecs::component::StorageType::Table
Source§type Mutability = Mutable
type Mutability = Mutable
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<'_, '_>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Source§fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read moreSource§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§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,
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 FromReflect for OrbitCam
impl FromReflect for OrbitCam
Source§fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
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 OrbitCam
impl GetTypeRegistration for OrbitCam
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 OrbitCam
impl PartialReflect for OrbitCam
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(&mut self, value: &dyn PartialReflect) -> Result<(), ApplyError>
fn try_apply(&mut self, value: &dyn PartialReflect) -> 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<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Self>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Self>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&dyn Reflect>
fn try_as_reflect(&self) -> Option<&dyn Reflect>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
Source§fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &dyn PartialReflect
fn as_partial_reflect(&self) -> &dyn PartialReflect
Source§fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
Source§fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Box<dyn PartialReflect>
fn to_dynamic(&self) -> Box<dyn PartialReflect>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect, combines reflect_clone and
take in a useful fashion, automatically constructing an appropriate
ReflectCloneError if the downcast fails. Read moreSource§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl Reflect for OrbitCam
impl Reflect for OrbitCam
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
&mut dyn Any. Read moreSource§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
Source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
Source§impl Struct for OrbitCam
impl Struct for OrbitCam
Source§fn field(&self, name: &str) -> Option<&dyn PartialReflect>
fn field(&self, name: &str) -> Option<&dyn PartialReflect>
name as a &dyn PartialReflect.Source§fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
name as a
&mut dyn PartialReflect.Source§fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
index as a
&dyn PartialReflect.Source§fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
index
as a &mut dyn PartialReflect.Source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index.Source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
Source§fn to_dynamic_struct(&self) -> DynamicStruct
fn to_dynamic_struct(&self) -> DynamicStruct
DynamicStruct from this struct.Source§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None if TypeInfo is not available.Source§impl TypePath for OrbitCam
impl TypePath for OrbitCam
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>
impl Copy for OrbitCam
impl StructuralPartialEq for OrbitCam
Auto Trait Implementations§
impl Freeze for OrbitCam
impl RefUnwindSafe for OrbitCam
impl Send for OrbitCam
impl Sync for OrbitCam
impl Unpin for OrbitCam
impl UnsafeUnpin for OrbitCam
impl UnwindSafe for OrbitCam
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<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>
Source§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Source§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,
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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
Source§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
Source§unsafe fn apply_effect(
_ptr: MovingPtr<'_, MaybeUninit<C>>,
_entity: &mut EntityWorldMut<'_>,
)
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
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> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
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, 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> 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