Struct BorderRect

Source
pub struct BorderRect {
    pub left: f32,
    pub right: f32,
    pub top: f32,
    pub bottom: f32,
}
Expand description

Defines the extents of the border of a rectangle.

This struct is used to represent thickness or offsets from the edges of a rectangle (left, right, top, and bottom), with values increasing inwards.

Fields§

§left: f32

Extent of the border along the left edge

§right: f32

Extent of the border along the right edge

§top: f32

Extent of the border along the top edge

§bottom: f32

Extent of the border along the bottom edge

Implementations§

Source§

impl BorderRect

Source

pub const ZERO: BorderRect

An empty border with zero thickness along each edge

Source

pub const fn all(extent: f32) -> BorderRect

Creates a border with the same extent along each edge

Examples found in repository?
examples/testbed/ui.rs (line 456)
451    pub fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
452        commands.spawn((Camera2d, StateScoped(super::Scene::Slice)));
453        let image = asset_server.load("textures/fantasy_ui_borders/numbered_slices.png");
454
455        let slicer = TextureSlicer {
456            border: BorderRect::all(16.0),
457            center_scale_mode: SliceScaleMode::Tile { stretch_value: 1.0 },
458            sides_scale_mode: SliceScaleMode::Tile { stretch_value: 1.0 },
459            ..default()
460        };
461        commands
462            .spawn((
463                Node {
464                    width: Val::Percent(100.0),
465                    height: Val::Percent(100.0),
466                    align_items: AlignItems::Center,
467                    justify_content: JustifyContent::SpaceAround,
468                    ..default()
469                },
470                StateScoped(super::Scene::Slice),
471            ))
472            .with_children(|parent| {
473                for [w, h] in [[150.0, 150.0], [300.0, 150.0], [150.0, 300.0]] {
474                    parent.spawn((
475                        Button,
476                        ImageNode {
477                            image: image.clone(),
478                            image_mode: NodeImageMode::Sliced(slicer.clone()),
479                            ..default()
480                        },
481                        Node {
482                            width: Val::Px(w),
483                            height: Val::Px(h),
484                            ..default()
485                        },
486                    ));
487                }
488            });
489    }
More examples
Hide additional examples
examples/ui/ui_texture_slice.rs (line 51)
47fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
48    let image = asset_server.load("textures/fantasy_ui_borders/panel-border-010.png");
49
50    let slicer = TextureSlicer {
51        border: BorderRect::all(22.0),
52        center_scale_mode: SliceScaleMode::Stretch,
53        sides_scale_mode: SliceScaleMode::Stretch,
54        max_corner_scale: 1.0,
55    };
56    // ui camera
57    commands.spawn(Camera2d);
58    commands
59        .spawn(Node {
60            width: Val::Percent(100.0),
61            height: Val::Percent(100.0),
62            align_items: AlignItems::Center,
63            justify_content: JustifyContent::Center,
64            ..default()
65        })
66        .with_children(|parent| {
67            for [w, h] in [[150.0, 150.0], [300.0, 150.0], [150.0, 300.0]] {
68                parent
69                    .spawn((
70                        Button,
71                        ImageNode {
72                            image: image.clone(),
73                            image_mode: NodeImageMode::Sliced(slicer.clone()),
74                            ..default()
75                        },
76                        Node {
77                            width: Val::Px(w),
78                            height: Val::Px(h),
79                            // horizontally center child text
80                            justify_content: JustifyContent::Center,
81                            // vertically center child text
82                            align_items: AlignItems::Center,
83                            margin: UiRect::all(Val::Px(20.0)),
84                            ..default()
85                        },
86                    ))
87                    .with_child((
88                        Text::new("Button"),
89                        TextFont {
90                            font: asset_server.load("fonts/FiraSans-Bold.ttf"),
91                            font_size: 33.0,
92                            ..default()
93                        },
94                        TextColor(Color::srgb(0.9, 0.9, 0.9)),
95                    ));
96            }
97        });
98}
examples/ui/ui_texture_slice_flip_and_tile.rs (line 31)
20fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
21    let image = asset_server.load_with_settings(
22        "textures/fantasy_ui_borders/numbered_slices.png",
23        |settings: &mut ImageLoaderSettings| {
24            // Need to use nearest filtering to avoid bleeding between the slices with tiling
25            settings.sampler = ImageSampler::nearest();
26        },
27    );
28
29    let slicer = TextureSlicer {
30        // `numbered_slices.png` is 48 pixels square. `BorderRect::square(16.)` insets the slicing line from each edge by 16 pixels, resulting in nine slices that are each 16 pixels square.
31        border: BorderRect::all(16.),
32        // With `SliceScaleMode::Tile` the side and center slices are tiled to fill the side and center sections of the target.
33        // And with a `stretch_value` of `1.` the tiles will have the same size as the corresponding slices in the source image.
34        center_scale_mode: SliceScaleMode::Tile { stretch_value: 1. },
35        sides_scale_mode: SliceScaleMode::Tile { stretch_value: 1. },
36        ..default()
37    };
38
39    // ui camera
40    commands.spawn(Camera2d);
41
42    commands
43        .spawn(Node {
44            width: Val::Percent(100.),
45            height: Val::Percent(100.),
46            justify_content: JustifyContent::Center,
47            align_content: AlignContent::Center,
48            flex_wrap: FlexWrap::Wrap,
49            column_gap: Val::Px(10.),
50            row_gap: Val::Px(10.),
51            ..default()
52        })
53        .with_children(|parent| {
54            for [columns, rows] in [[3., 3.], [4., 4.], [5., 4.], [4., 5.], [5., 5.]] {
55                for (flip_x, flip_y) in [(false, false), (false, true), (true, false), (true, true)]
56                {
57                    parent.spawn((
58                        ImageNode {
59                            image: image.clone(),
60                            flip_x,
61                            flip_y,
62                            image_mode: NodeImageMode::Sliced(slicer.clone()),
63                            ..default()
64                        },
65                        Node {
66                            width: Val::Px(16. * columns),
67                            height: Val::Px(16. * rows),
68                            ..default()
69                        },
70                    ));
71                }
72            }
73        });
74}
examples/ui/ui_texture_atlas_slice.rs (line 61)
50fn setup(
51    mut commands: Commands,
52    asset_server: Res<AssetServer>,
53    mut texture_atlases: ResMut<Assets<TextureAtlasLayout>>,
54) {
55    let texture_handle = asset_server.load("textures/fantasy_ui_borders/border_sheet.png");
56    let atlas_layout =
57        TextureAtlasLayout::from_grid(UVec2::new(50, 50), 6, 6, Some(UVec2::splat(2)), None);
58    let atlas_layout_handle = texture_atlases.add(atlas_layout);
59
60    let slicer = TextureSlicer {
61        border: BorderRect::all(24.0),
62        center_scale_mode: SliceScaleMode::Stretch,
63        sides_scale_mode: SliceScaleMode::Stretch,
64        max_corner_scale: 1.0,
65    };
66    // ui camera
67    commands.spawn(Camera2d);
68    commands
69        .spawn(Node {
70            width: Val::Percent(100.0),
71            height: Val::Percent(100.0),
72            align_items: AlignItems::Center,
73            justify_content: JustifyContent::Center,
74            ..default()
75        })
76        .with_children(|parent| {
77            for (idx, [w, h]) in [
78                (0, [150.0, 150.0]),
79                (7, [300.0, 150.0]),
80                (13, [150.0, 300.0]),
81            ] {
82                parent
83                    .spawn((
84                        Button,
85                        ImageNode::from_atlas_image(
86                            texture_handle.clone(),
87                            TextureAtlas {
88                                index: idx,
89                                layout: atlas_layout_handle.clone(),
90                            },
91                        )
92                        .with_mode(NodeImageMode::Sliced(slicer.clone())),
93                        Node {
94                            width: Val::Px(w),
95                            height: Val::Px(h),
96                            // horizontally center child text
97                            justify_content: JustifyContent::Center,
98                            // vertically center child text
99                            align_items: AlignItems::Center,
100                            margin: UiRect::all(Val::Px(20.0)),
101                            ..default()
102                        },
103                    ))
104                    .with_children(|parent| {
105                        parent.spawn((
106                            Text::new("Button"),
107                            TextFont {
108                                font: asset_server.load("fonts/FiraSans-Bold.ttf"),
109                                font_size: 33.0,
110                                ..default()
111                            },
112                            TextColor(Color::srgb(0.9, 0.9, 0.9)),
113                        ));
114                    });
115            }
116        });
117}
examples/2d/sprite_slice.rs (line 41)
12fn spawn_sprites(
13    commands: &mut Commands,
14    texture_handle: Handle<Image>,
15    mut position: Vec3,
16    slice_border: f32,
17    style: TextFont,
18    gap: f32,
19) {
20    let cases = [
21        // Reference sprite
22        (
23            "Original",
24            style.clone(),
25            Vec2::splat(100.0),
26            SpriteImageMode::Auto,
27        ),
28        // Scaled regular sprite
29        (
30            "Stretched",
31            style.clone(),
32            Vec2::new(100.0, 200.0),
33            SpriteImageMode::Auto,
34        ),
35        // Stretched Scaled sliced sprite
36        (
37            "With Slicing",
38            style.clone(),
39            Vec2::new(100.0, 200.0),
40            SpriteImageMode::Sliced(TextureSlicer {
41                border: BorderRect::all(slice_border),
42                center_scale_mode: SliceScaleMode::Stretch,
43                ..default()
44            }),
45        ),
46        // Scaled sliced sprite
47        (
48            "With Tiling",
49            style.clone(),
50            Vec2::new(100.0, 200.0),
51            SpriteImageMode::Sliced(TextureSlicer {
52                border: BorderRect::all(slice_border),
53                center_scale_mode: SliceScaleMode::Tile { stretch_value: 0.5 },
54                sides_scale_mode: SliceScaleMode::Tile { stretch_value: 0.2 },
55                ..default()
56            }),
57        ),
58        // Scaled sliced sprite horizontally
59        (
60            "With Tiling",
61            style.clone(),
62            Vec2::new(300.0, 200.0),
63            SpriteImageMode::Sliced(TextureSlicer {
64                border: BorderRect::all(slice_border),
65                center_scale_mode: SliceScaleMode::Tile { stretch_value: 0.2 },
66                sides_scale_mode: SliceScaleMode::Tile { stretch_value: 0.3 },
67                ..default()
68            }),
69        ),
70        // Scaled sliced sprite horizontally with max scale
71        (
72            "With Corners Constrained",
73            style,
74            Vec2::new(300.0, 200.0),
75            SpriteImageMode::Sliced(TextureSlicer {
76                border: BorderRect::all(slice_border),
77                center_scale_mode: SliceScaleMode::Tile { stretch_value: 0.1 },
78                sides_scale_mode: SliceScaleMode::Tile { stretch_value: 0.2 },
79                max_corner_scale: 0.2,
80            }),
81        ),
82    ];
83
84    for (label, text_style, size, scale_mode) in cases {
85        position.x += 0.5 * size.x;
86        commands.spawn((
87            Sprite {
88                image: texture_handle.clone(),
89                custom_size: Some(size),
90                image_mode: scale_mode,
91                ..default()
92            },
93            Transform::from_translation(position),
94            children![(
95                Text2d::new(label),
96                text_style,
97                TextLayout::new_with_justify(JustifyText::Center),
98                Transform::from_xyz(0., -0.5 * size.y - 10., 0.0),
99                bevy::sprite::Anchor::TopCenter,
100            )],
101        ));
102        position.x += 0.5 * size.x + gap;
103    }
104}
Source

pub const fn axes(horizontal: f32, vertical: f32) -> BorderRect

Creates a new border with the left and right extents equal to horizontal, and top and bottom extents equal to vertical.

Trait Implementations§

Source§

impl Clone for BorderRect

Source§

fn clone(&self) -> BorderRect

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BorderRect

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for BorderRect

Source§

fn default() -> BorderRect

Returns the “default value” for a type. Read more
Source§

impl From<[f32; 4]> for BorderRect

Source§

fn from(_: [f32; 4]) -> BorderRect

Converts to this type from the input type.
Source§

impl From<f32> for BorderRect

Source§

fn from(extent: f32) -> BorderRect

Converts to this type from the input type.
Source§

impl FromArg for &'static BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

type This<'from_arg> = &'from_arg BorderRect

The type to convert into. Read more
Source§

fn from_arg( arg: Arg<'_>, ) -> Result<<&'static BorderRect as FromArg>::This<'_>, ArgError>

Creates an item from an argument. Read more
Source§

impl FromArg for &'static mut BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

type This<'from_arg> = &'from_arg mut BorderRect

The type to convert into. Read more
Source§

fn from_arg( arg: Arg<'_>, ) -> Result<<&'static mut BorderRect as FromArg>::This<'_>, ArgError>

Creates an item from an argument. Read more
Source§

impl FromArg for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

type This<'from_arg> = BorderRect

The type to convert into. Read more
Source§

fn from_arg(arg: Arg<'_>) -> Result<<BorderRect as FromArg>::This<'_>, ArgError>

Creates an item from an argument. Read more
Source§

impl FromReflect for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<BorderRect>

Constructs a concrete instance of Self from a reflected value.
Source§

fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
Source§

impl GetOwnership for &BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl GetOwnership for &mut BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl GetOwnership for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl GetTypeRegistration for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
Source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
Source§

impl IntoReturn for &BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn into_return<'into_return>(self) -> Return<'into_return>
where &BorderRect: 'into_return,

Converts Self into a Return value.
Source§

impl IntoReturn for &mut BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn into_return<'into_return>(self) -> Return<'into_return>
where &mut BorderRect: 'into_return,

Converts Self into a Return value.
Source§

impl IntoReturn for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn into_return<'into_return>(self) -> Return<'into_return>
where BorderRect: 'into_return,

Converts Self into a Return value.
Source§

impl PartialEq for BorderRect

Source§

fn eq(&self, other: &BorderRect) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialReflect for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
Source§

fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
Source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
Source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
Source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
Source§

fn reflect_owned(self: Box<BorderRect>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
Source§

fn try_into_reflect( self: Box<BorderRect>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>

Attempts to cast this type to a boxed, fully-reflected value.
Source§

fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>

Attempts to cast this type to a fully-reflected value.
Source§

fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>

Attempts to cast this type to a mutable, fully-reflected value.
Source§

fn into_partial_reflect(self: Box<BorderRect>) -> Box<dyn PartialReflect>

Casts this type to a boxed, reflected value. Read more
Source§

fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)

Casts this type to a reflected value. Read more
Source§

fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)

Casts this type to a mutable, reflected value. Read more
Source§

fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>

Returns a “partial equality” comparison result. Read more
Source§

fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>

Attempts to clone Self using reflection. Read more
Source§

fn apply(&mut self, value: &(dyn PartialReflect + 'static))

Applies a reflected value to this value. Read more
Source§

fn clone_value(&self) -> Box<dyn PartialReflect>

👎Deprecated since 0.16.0: to clone reflected values, prefer using reflect_clone. To convert reflected values to dynamic ones, use to_dynamic.
Clones Self into its dynamic representation. Read more
Source§

fn to_dynamic(&self) -> Box<dyn PartialReflect>

Converts this reflected value into its dynamic representation based on its kind. Read more
Source§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
Source§

fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. Read more
Source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
Source§

impl Reflect for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn into_any(self: Box<BorderRect>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>. Read more
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the value as a &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns the value as a &mut dyn Any. Read more
Source§

fn into_reflect(self: Box<BorderRect>) -> Box<dyn Reflect>

Casts this type to a boxed, fully-reflected value.
Source§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a fully-reflected value.
Source§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable, fully-reflected value.
Source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
Source§

impl Struct for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>

Returns a reference to the value of the field named name as a &dyn PartialReflect.
Source§

fn field_mut( &mut self, name: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>

Returns a mutable reference to the value of the field named name as a &mut dyn PartialReflect.
Source§

fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>

Returns a reference to the value of the field with index index as a &dyn PartialReflect.
Source§

fn field_at_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>

Returns a mutable reference to the value of the field with index index as a &mut dyn PartialReflect.
Source§

fn name_at(&self, index: usize) -> Option<&str>

Returns the name of the field with index index.
Source§

fn field_len(&self) -> usize

Returns the number of fields in the struct.
Source§

fn iter_fields(&self) -> FieldIter<'_>

Returns an iterator over the values of the reflectable fields for this struct.
Source§

fn to_dynamic_struct(&self) -> DynamicStruct

Source§

fn clone_dynamic(&self) -> DynamicStruct

👎Deprecated since 0.16.0: use to_dynamic_struct instead
Clones the struct into a DynamicStruct.
Source§

fn get_represented_struct_info(&self) -> Option<&'static StructInfo>

Will return None if TypeInfo is not available.
Source§

impl TypePath for BorderRect
where BorderRect: Any + Send + Sync,

Source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
Source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
Source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
Source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
Source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
Source§

impl Typed for BorderRect
where BorderRect: Any + Send + Sync, f32: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.
Source§

impl Copy for BorderRect

Source§

impl StructuralPartialEq for BorderRect

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynamicTypePath for T
where T: TypePath,

Source§

impl<T> DynamicTyped for T
where T: Typed,

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<S> GetField for S
where S: Struct,

Source§

fn get_field<T>(&self, name: &str) -> Option<&T>
where T: Reflect,

Returns a reference to the value of the field named name, downcast to T.
Source§

fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T>
where T: Reflect,

Returns a mutable reference to the value of the field named name, downcast to T.
Source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

Source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
Source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
Source§

fn path<'p, T>( &self, path: impl ReflectPath<'p>, ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
Source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .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
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.
Source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> Reflectable for T

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,