Cuboid

Struct Cuboid 

Source
pub struct Cuboid {
    pub half_size: Vec3,
}
Expand description

A cuboid primitive, which is like a cube, except that the x, y, and z dimensions are not required to be the same.

Fields§

§half_size: Vec3

Half of the width, height and depth of the cuboid

Implementations§

Source§

impl Cuboid

Source

pub const fn new(x_length: f32, y_length: f32, z_length: f32) -> Cuboid

Create a new Cuboid from a full x, y, and z length

Examples found in repository?
examples/async_tasks/async_compute.rs (line 39)
34fn add_assets(
35    mut commands: Commands,
36    mut meshes: ResMut<Assets<Mesh>>,
37    mut materials: ResMut<Assets<StandardMaterial>>,
38) {
39    let box_mesh_handle = meshes.add(Cuboid::new(0.25, 0.25, 0.25));
40    commands.insert_resource(BoxMeshHandle(box_mesh_handle));
41
42    let box_material_handle = materials.add(Color::srgb(1.0, 0.2, 0.3));
43    commands.insert_resource(BoxMaterialHandle(box_material_handle));
44}
More examples
Hide additional examples
examples/shader_advanced/render_depth_to_texture.rs (line 181)
176fn spawn_rotating_cube(
177    commands: &mut Commands,
178    meshes: &mut Assets<Mesh>,
179    standard_materials: &mut Assets<StandardMaterial>,
180) {
181    let cube_handle = meshes.add(Cuboid::new(3.0, 3.0, 3.0));
182    let rotating_cube_material_handle = standard_materials.add(StandardMaterial {
183        base_color: Color::WHITE,
184        unlit: false,
185        ..default()
186    });
187    commands.spawn((
188        Mesh3d(cube_handle.clone()),
189        MeshMaterial3d(rotating_cube_material_handle),
190        Transform::IDENTITY,
191        RotatingCube,
192    ));
193}
examples/3d/ssr.rs (line 155)
147fn spawn_cube(
148    commands: &mut Commands,
149    asset_server: &AssetServer,
150    meshes: &mut Assets<Mesh>,
151    standard_materials: &mut Assets<StandardMaterial>,
152) {
153    commands
154        .spawn((
155            Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))),
156            MeshMaterial3d(standard_materials.add(StandardMaterial {
157                base_color: Color::from(WHITE),
158                base_color_texture: Some(asset_server.load("branding/icon.png")),
159                ..default()
160            })),
161            Transform::from_xyz(0.0, 0.5, 0.0),
162        ))
163        .insert(CubeModel);
164}
examples/picking/debug_picking.rs (line 95)
86fn on_click_spawn_cube(
87    _click: On<Pointer<Click>>,
88    mut commands: Commands,
89    mut meshes: ResMut<Assets<Mesh>>,
90    mut materials: ResMut<Assets<StandardMaterial>>,
91    mut num: Local<usize>,
92) {
93    commands
94        .spawn((
95            Mesh3d(meshes.add(Cuboid::new(0.5, 0.5, 0.5))),
96            MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))),
97            Transform::from_xyz(0.0, 0.25 + 0.55 * *num as f32, 0.0),
98        ))
99        // With the MeshPickingPlugin added, you can add pointer event observers to meshes:
100        .observe(on_drag_rotate);
101    *num += 1;
102}
examples/picking/simple_picking.rs (line 71)
62fn on_click_spawn_cube(
63    _click: On<Pointer<Click>>,
64    mut commands: Commands,
65    mut meshes: ResMut<Assets<Mesh>>,
66    mut materials: ResMut<Assets<StandardMaterial>>,
67    mut num: Local<usize>,
68) {
69    commands
70        .spawn((
71            Mesh3d(meshes.add(Cuboid::new(0.5, 0.5, 0.5))),
72            MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))),
73            Transform::from_xyz(0.0, 0.25 + 0.55 * *num as f32, 0.0),
74        ))
75        // With the MeshPickingPlugin added, you can add pointer event observers to meshes:
76        .observe(on_drag_rotate);
77    *num += 1;
78}
examples/3d/clustered_decals.rs (line 188)
178fn spawn_cube(
179    commands: &mut Commands,
180    meshes: &mut Assets<Mesh>,
181    materials: &mut Assets<ExtendedMaterial<StandardMaterial, CustomDecalExtension>>,
182) {
183    // Rotate the cube a bit just to make it more interesting.
184    let mut transform = Transform::IDENTITY;
185    transform.rotate_y(FRAC_PI_3);
186
187    commands.spawn((
188        Mesh3d(meshes.add(Cuboid::new(3.0, 3.0, 3.0))),
189        MeshMaterial3d(materials.add(ExtendedMaterial {
190            base: StandardMaterial {
191                base_color: SILVER.into(),
192                ..default()
193            },
194            extension: CustomDecalExtension {},
195        })),
196        transform,
197    ));
198}
Source

pub const fn from_size(size: Vec3) -> Cuboid

Create a new Cuboid from a given full size

Examples found in repository?
examples/math/custom_primitives.rs (line 232)
219fn bounding_shapes_3d(
220    shapes: Query<&Transform, With<Shape3d>>,
221    mut gizmos: Gizmos,
222    bounding_shape: Res<State<BoundingShape>>,
223) {
224    for transform in shapes.iter() {
225        match bounding_shape.get() {
226            BoundingShape::None => (),
227            BoundingShape::BoundingBox => {
228                // Get the AABB of the extrusion with the rotation and translation of the mesh.
229                let aabb = EXTRUSION.aabb_3d(transform.to_isometry());
230
231                gizmos.primitive_3d(
232                    &Cuboid::from_size(Vec3::from(aabb.half_size()) * 2.),
233                    aabb.center(),
234                    WHITE,
235                );
236            }
237            BoundingShape::BoundingSphere => {
238                // Get the bounding sphere of the extrusion with the rotation and translation of the mesh.
239                let bounding_sphere = EXTRUSION.bounding_sphere(transform.to_isometry());
240
241                gizmos.sphere(bounding_sphere.center(), bounding_sphere.radius(), WHITE);
242            }
243        }
244    }
245}
More examples
Hide additional examples
examples/movement/smooth_follow.rs (line 113)
92fn move_target(
93    mut target: Single<&mut Transform, With<TargetSphere>>,
94    target_speed: Res<TargetSphereSpeed>,
95    mut target_pos: ResMut<TargetPosition>,
96    time: Res<Time>,
97    mut rng: ResMut<RandomSource>,
98) {
99    match Dir3::new(target_pos.0 - target.translation) {
100        // The target and the present position of the target sphere are far enough to have a well-
101        // defined direction between them, so let's move closer:
102        Ok(dir) => {
103            let delta_time = time.delta_secs();
104            let abs_delta = (target_pos.0 - target.translation).norm();
105
106            // Avoid overshooting in case of high values of `delta_time`:
107            let magnitude = f32::min(abs_delta, delta_time * target_speed.0);
108            target.translation += dir * magnitude;
109        }
110
111        // The two are really close, so let's generate a new target position:
112        Err(_) => {
113            let legal_region = Cuboid::from_size(Vec3::splat(4.0));
114            *target_pos = TargetPosition(legal_region.sample_interior(&mut rng.0));
115        }
116    }
117}
examples/stress_tests/many_materials.rs (line 80)
50fn setup(
51    mut commands: Commands,
52    args: Res<Args>,
53    mesh_assets: ResMut<Assets<Mesh>>,
54    material_assets: ResMut<Assets<StandardMaterial>>,
55) {
56    let args = args.into_inner();
57    let material_assets = material_assets.into_inner();
58    let mesh_assets = mesh_assets.into_inner();
59    let n = args.grid_size;
60
61    // Camera
62    let w = n as f32;
63    commands.spawn((
64        Camera3d::default(),
65        Transform::from_xyz(w * 1.25, w + 1.0, w * 1.25)
66            .looking_at(Vec3::new(0.0, (w * -1.1) + 1.0, 0.0), Vec3::Y),
67    ));
68
69    // Light
70    commands.spawn((
71        Transform::from_rotation(Quat::from_euler(EulerRot::ZYX, 0.0, 1.0, -PI / 4.)),
72        DirectionalLight {
73            illuminance: 3000.0,
74            shadows_enabled: true,
75            ..default()
76        },
77    ));
78
79    // Cubes
80    let mesh_handle = mesh_assets.add(Cuboid::from_size(Vec3::ONE));
81    for x in 0..n {
82        for z in 0..n {
83            commands.spawn((
84                Mesh3d(mesh_handle.clone()),
85                MeshMaterial3d(material_assets.add(Color::WHITE)),
86                Transform::from_translation(Vec3::new(x as f32, 0.0, z as f32)),
87            ));
88        }
89    }
90}
examples/shader/storage_buffer.rs (line 38)
21fn setup(
22    mut commands: Commands,
23    mut meshes: ResMut<Assets<Mesh>>,
24    mut buffers: ResMut<Assets<ShaderStorageBuffer>>,
25    mut materials: ResMut<Assets<CustomMaterial>>,
26) {
27    // Example data for the storage buffer
28    let color_data: Vec<[f32; 4]> = vec![
29        [1.0, 0.0, 0.0, 1.0],
30        [0.0, 1.0, 0.0, 1.0],
31        [0.0, 0.0, 1.0, 1.0],
32        [1.0, 1.0, 0.0, 1.0],
33        [0.0, 1.0, 1.0, 1.0],
34    ];
35
36    let colors = buffers.add(ShaderStorageBuffer::from(color_data));
37
38    let mesh_handle = meshes.add(Cuboid::from_size(Vec3::splat(0.3)));
39    // Create the custom material with the storage buffer
40    let material_handle = materials.add(CustomMaterial {
41        colors: colors.clone(),
42    });
43
44    commands.insert_resource(CustomMaterialHandle(material_handle.clone()));
45
46    // Spawn cubes with the custom material
47    let mut current_color_id: u32 = 0;
48    for i in -6..=6 {
49        for j in -3..=3 {
50            commands.spawn((
51                Mesh3d(mesh_handle.clone()),
52                MeshMaterial3d(material_handle.clone()),
53                MeshTag(current_color_id % 5),
54                Transform::from_xyz(i as f32, j as f32, 0.0),
55            ));
56            current_color_id += 1;
57        }
58    }
59
60    // Camera
61    commands.spawn((
62        Camera3d::default(),
63        Transform::from_xyz(0.0, 0.0, 10.0).looking_at(Vec3::ZERO, Vec3::Y),
64    ));
65}
examples/shader/automatic_instancing.rs (line 36)
26fn setup(
27    mut commands: Commands,
28    assets: Res<AssetServer>,
29    mut meshes: ResMut<Assets<Mesh>>,
30    mut materials: ResMut<Assets<CustomMaterial>>,
31) {
32    // We will use this image as our external data for our material to sample from in the vertex shader
33    let image = assets.load("branding/icon.png");
34
35    // Our single mesh handle that will be instanced
36    let mesh_handle = meshes.add(Cuboid::from_size(Vec3::splat(0.01)));
37
38    // Create the custom material with a reference to our texture
39    // Automatic instancing works with any Material, including the `StandardMaterial`.
40    // This custom material is used to demonstrate the optional `MeshTag` feature.
41    let material_handle = materials.add(CustomMaterial {
42        image: image.clone(),
43    });
44
45    // We're hardcoding the image dimensions for simplicity
46    let image_dims = UVec2::new(256, 256);
47    let total_pixels = image_dims.x * image_dims.y;
48
49    for index in 0..total_pixels {
50        // Get x,y from index - x goes left to right, y goes top to bottom
51        let x = index % image_dims.x;
52        let y = index / image_dims.x;
53
54        // Convert to centered world coordinates
55        let world_x = (x as f32 - image_dims.x as f32 / 2.0) / 50.0;
56        let world_y = -((y as f32 - image_dims.y as f32 / 2.0) / 50.0); // Still need negative for world space
57
58        commands.spawn((
59            // For automatic instancing to take effect you need to
60            // use the same mesh handle and material handle for each instance
61            Mesh3d(mesh_handle.clone()),
62            MeshMaterial3d(material_handle.clone()),
63            // This is an optional component that can be used to help tie external data to a mesh instance
64            MeshTag(index),
65            Transform::from_xyz(world_x, world_y, 0.0),
66        ));
67    }
68
69    // Camera
70    commands.spawn((
71        Camera3d::default(),
72        Transform::from_xyz(0.0, 0.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
73    ));
74}
examples/3d/order_independent_transparency.rs (line 180)
174fn spawn_occlusion_test(
175    commands: &mut Commands,
176    meshes: &mut Assets<Mesh>,
177    materials: &mut Assets<StandardMaterial>,
178) {
179    let sphere_handle = meshes.add(Sphere::new(1.0).mesh());
180    let cube_handle = meshes.add(Cuboid::from_size(Vec3::ONE).mesh());
181    let cube_material = materials.add(Color::srgb(0.8, 0.7, 0.6));
182
183    let render_layers = RenderLayers::layer(1);
184
185    // front
186    let x = -2.5;
187    commands.spawn((
188        Mesh3d(cube_handle.clone()),
189        MeshMaterial3d(cube_material.clone()),
190        Transform::from_xyz(x, 0.0, 2.0),
191        render_layers.clone(),
192    ));
193    commands.spawn((
194        Mesh3d(sphere_handle.clone()),
195        MeshMaterial3d(materials.add(StandardMaterial {
196            base_color: RED.with_alpha(0.5).into(),
197            alpha_mode: AlphaMode::Blend,
198            ..default()
199        })),
200        Transform::from_xyz(x, 0., 0.),
201        render_layers.clone(),
202    ));
203
204    // intersection
205    commands.spawn((
206        Mesh3d(cube_handle.clone()),
207        MeshMaterial3d(cube_material.clone()),
208        Transform::from_xyz(x, 0.0, 1.0),
209        render_layers.clone(),
210    ));
211    commands.spawn((
212        Mesh3d(sphere_handle.clone()),
213        MeshMaterial3d(materials.add(StandardMaterial {
214            base_color: RED.with_alpha(0.5).into(),
215            alpha_mode: AlphaMode::Blend,
216            ..default()
217        })),
218        Transform::from_xyz(0., 0., 0.),
219        render_layers.clone(),
220    ));
221
222    // back
223    let x = 2.5;
224    commands.spawn((
225        Mesh3d(cube_handle.clone()),
226        MeshMaterial3d(cube_material.clone()),
227        Transform::from_xyz(x, 0.0, -2.0),
228        render_layers.clone(),
229    ));
230    commands.spawn((
231        Mesh3d(sphere_handle.clone()),
232        MeshMaterial3d(materials.add(StandardMaterial {
233            base_color: RED.with_alpha(0.5).into(),
234            alpha_mode: AlphaMode::Blend,
235            ..default()
236        })),
237        Transform::from_xyz(x, 0., 0.),
238        render_layers.clone(),
239    ));
240}
Source

pub fn from_corners(point1: Vec3, point2: Vec3) -> Cuboid

Create a new Cuboid from two corner points

Source

pub const fn from_length(length: f32) -> Cuboid

Create a Cuboid from a single length. The resulting Cuboid will be the same size in every direction.

Examples found in repository?
tests/window/desktop_request_redraw.rs (line 80)
39fn setup(
40    mut commands: Commands,
41    mut meshes: ResMut<Assets<Mesh>>,
42    mut materials: ResMut<Assets<StandardMaterial>>,
43) {
44    commands.spawn((
45        Camera3d::default(),
46        Transform::from_xyz(0.0, 5.0, 0.0).looking_at(Vec3::ZERO, Vec3::Y),
47    ));
48
49    commands.spawn((
50        PointLight {
51            intensity: 1e6,
52            ..Default::default()
53        },
54        Transform::from_xyz(-1.0, 5.0, 1.0),
55    ));
56
57    let node = Node {
58        display: Display::Block,
59        padding: UiRect::all(Val::Px(10.0)),
60        row_gap: Val::Px(10.0),
61        ..Default::default()
62    };
63
64    commands.spawn((
65        node.clone(),
66        children![
67            (
68                node.clone(),
69                children![Text::new("Right click cube to pause animation")]
70            ),
71            (
72                node.clone(),
73                children![Text::new("Left click cube to start animation")]
74            )
75        ],
76    ));
77
78    commands
79        .spawn((
80            Mesh3d(meshes.add(Cuboid::from_length(1.0))),
81            MeshMaterial3d(materials.add(Color::WHITE)),
82            AnimationActive,
83        ))
84        .observe(
85            |click: On<Pointer<Click>>, mut commands: Commands| match click.button {
86                PointerButton::Primary => {
87                    commands.entity(click.entity).insert(AnimationActive);
88                }
89                PointerButton::Secondary => {
90                    commands.entity(click.entity).remove::<AnimationActive>();
91                }
92                _ => {}
93            },
94        );
95}
More examples
Hide additional examples
examples/animation/eased_motion.rs (line 41)
19fn setup(
20    mut commands: Commands,
21    mut meshes: ResMut<Assets<Mesh>>,
22    mut materials: ResMut<Assets<StandardMaterial>>,
23    mut animation_graphs: ResMut<Assets<AnimationGraph>>,
24    mut animation_clips: ResMut<Assets<AnimationClip>>,
25) {
26    // Create the animation:
27    let AnimationInfo {
28        target_name: animation_target_name,
29        target_id: animation_target_id,
30        graph: animation_graph,
31        node_index: animation_node_index,
32    } = AnimationInfo::create(&mut animation_graphs, &mut animation_clips);
33
34    // Build an animation player that automatically plays the animation.
35    let mut animation_player = AnimationPlayer::default();
36    animation_player.play(animation_node_index).repeat();
37
38    // A cube together with the components needed to animate it
39    let cube_entity = commands
40        .spawn((
41            Mesh3d(meshes.add(Cuboid::from_length(2.0))),
42            MeshMaterial3d(materials.add(Color::from(ORANGE))),
43            Transform::from_translation(vec3(-6., 2., 0.)),
44            animation_target_name,
45            animation_player,
46            AnimationGraphHandle(animation_graph),
47        ))
48        .id();
49
50    commands.entity(cube_entity).insert(AnimationTarget {
51        id: animation_target_id,
52        player: cube_entity,
53    });
54
55    // Some light to see something
56    commands.spawn((
57        PointLight {
58            shadows_enabled: true,
59            intensity: 10_000_000.,
60            range: 100.0,
61            ..default()
62        },
63        Transform::from_xyz(8., 16., 8.),
64    ));
65
66    // Ground plane
67    commands.spawn((
68        Mesh3d(meshes.add(Plane3d::default().mesh().size(50., 50.))),
69        MeshMaterial3d(materials.add(Color::from(SILVER))),
70    ));
71
72    // The camera
73    commands.spawn((
74        Camera3d::default(),
75        Transform::from_xyz(0., 6., 12.).looking_at(Vec3::new(0., 1.5, 0.), Vec3::Y),
76    ));
77}
examples/math/random_sampling.rs (line 68)
51fn setup(
52    mut commands: Commands,
53    mut meshes: ResMut<Assets<Mesh>>,
54    mut materials: ResMut<Assets<StandardMaterial>>,
55) {
56    // Use seeded rng and store it in a resource; this makes the random output reproducible.
57    let seeded_rng = ChaCha8Rng::seed_from_u64(19878367467712);
58    commands.insert_resource(RandomSource(seeded_rng));
59
60    // Make a plane for establishing space.
61    commands.spawn((
62        Mesh3d(meshes.add(Plane3d::default().mesh().size(12.0, 12.0))),
63        MeshMaterial3d(materials.add(Color::srgb(0.3, 0.5, 0.3))),
64        Transform::from_xyz(0.0, -2.5, 0.0),
65    ));
66
67    // Store the shape we sample from in a resource:
68    let shape = Cuboid::from_length(2.9);
69    commands.insert_resource(SampledShape(shape));
70
71    // The sampled shape shown transparently:
72    commands.spawn((
73        Mesh3d(meshes.add(shape)),
74        MeshMaterial3d(materials.add(StandardMaterial {
75            base_color: Color::srgba(0.2, 0.1, 0.6, 0.3),
76            alpha_mode: AlphaMode::Blend,
77            cull_mode: None,
78            ..default()
79        })),
80    ));
81
82    // A light:
83    commands.spawn((
84        PointLight {
85            shadows_enabled: true,
86            ..default()
87        },
88        Transform::from_xyz(4.0, 8.0, 4.0),
89    ));
90
91    // A camera:
92    commands.spawn((
93        Camera3d::default(),
94        Transform::from_xyz(-2.0, 3.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
95    ));
96
97    // Store the mesh and material for sample points in resources:
98    commands.insert_resource(PointMesh(
99        meshes.add(
100            Sphere::new(0.03)
101                .mesh()
102                .kind(SphereKind::Ico { subdivisions: 3 }),
103        ),
104    ));
105    commands.insert_resource(PointMaterial(materials.add(StandardMaterial {
106        base_color: Color::srgb(1.0, 0.8, 0.8),
107        metallic: 0.8,
108        ..default()
109    })));
110
111    // Instructions for the example:
112    commands.spawn((
113        Text::new(
114            "Controls:\n\
115            M: Toggle between sampling boundary and interior.\n\
116            R: Restart (erase all samples).\n\
117            S: Add one random sample.\n\
118            D: Add 100 random samples.\n\
119            Rotate camera by holding left mouse and panning left/right.",
120        ),
121        Node {
122            position_type: PositionType::Absolute,
123            top: px(12),
124            left: px(12),
125            ..default()
126        },
127    ));
128
129    // The mode starts with interior points.
130    commands.insert_resource(Mode::Interior);
131
132    // Starting mouse-pressed state is false.
133    commands.insert_resource(MousePressed(false));
134}
examples/3d/decal.rs (line 88)
24fn setup(
25    mut commands: Commands,
26    mut meshes: ResMut<Assets<Mesh>>,
27    mut standard_materials: ResMut<Assets<StandardMaterial>>,
28    mut decal_standard_materials: ResMut<Assets<ForwardDecalMaterial<StandardMaterial>>>,
29    asset_server: Res<AssetServer>,
30) {
31    // Spawn the forward decal
32    commands.spawn((
33        Name::new("Decal"),
34        ForwardDecal,
35        MeshMaterial3d(decal_standard_materials.add(ForwardDecalMaterial {
36            base: StandardMaterial {
37                base_color_texture: Some(asset_server.load("textures/uv_checker_bw.png")),
38                ..default()
39            },
40            extension: ForwardDecalMaterialExt {
41                depth_fade_factor: 1.0,
42            },
43        })),
44        Transform::from_scale(Vec3::splat(4.0)),
45    ));
46
47    commands.spawn((
48        Name::new("Camera"),
49        Camera3d::default(),
50        CameraController::default(),
51        // Must enable the depth prepass to render forward decals
52        DepthPrepass,
53        // Must disable MSAA to use decals on WebGPU
54        Msaa::Off,
55        // FXAA is a fine alternative to MSAA for anti-aliasing
56        Fxaa::default(),
57        Transform::from_xyz(2.0, 9.5, 2.5).looking_at(Vec3::ZERO, Vec3::Y),
58    ));
59
60    let white_material = standard_materials.add(Color::WHITE);
61
62    commands.spawn((
63        Name::new("Floor"),
64        Mesh3d(meshes.add(Rectangle::from_length(10.0))),
65        MeshMaterial3d(white_material.clone()),
66        Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)),
67    ));
68
69    // Spawn a few cube with random rotations to showcase how the decals behave with non-flat geometry
70    let num_obs = 10;
71    let mut rng = ChaCha8Rng::seed_from_u64(19878367467713);
72    for i in 0..num_obs {
73        for j in 0..num_obs {
74            let rotation_axis: [f32; 3] = rng.random();
75            let rotation_vec: Vec3 = rotation_axis.into();
76            let rotation: u32 = rng.random_range(0..360);
77            let transform = Transform::from_xyz(
78                (-num_obs + 1) as f32 / 2.0 + i as f32,
79                -0.2,
80                (-num_obs + 1) as f32 / 2.0 + j as f32,
81            )
82            .with_rotation(Quat::from_axis_angle(
83                rotation_vec.normalize_or_zero(),
84                (rotation as f32).to_radians(),
85            ));
86
87            commands.spawn((
88                Mesh3d(meshes.add(Cuboid::from_length(0.6))),
89                MeshMaterial3d(white_material.clone()),
90                transform,
91            ));
92        }
93    }
94
95    commands.spawn((
96        Name::new("Light"),
97        PointLight {
98            shadows_enabled: true,
99            ..default()
100        },
101        Transform::from_xyz(4.0, 8.0, 4.0),
102    ));
103}
Source

pub fn size(&self) -> Vec3

Get the size of the cuboid

Source

pub fn closest_point(&self, point: Vec3) -> Vec3

Finds the point on the cuboid that is closest to the given point.

If the point is outside the cuboid, the returned point will be on the surface of the cuboid. Otherwise, it will be inside the cuboid and returned as is.

Trait Implementations§

Source§

impl Bounded3d for Cuboid

Source§

fn aabb_3d(&self, isometry: impl Into<Isometry3d>) -> Aabb3d

Get an axis-aligned bounding box for the shape translated and rotated by the given isometry.
Source§

fn bounding_sphere(&self, isometry: impl Into<Isometry3d>) -> BoundingSphere

Get a bounding sphere for the shape translated and rotated by the given isometry.
Source§

impl Clone for Cuboid

Source§

fn clone(&self) -> Cuboid

Returns a duplicate 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 Cuboid

Source§

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

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

impl Default for Cuboid

Source§

fn default() -> Cuboid

Returns the default Cuboid with a width, height, and depth of 1.0.

Source§

impl<'de> Deserialize<'de> for Cuboid

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Cuboid, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<Cuboid> for Mesh

Source§

fn from(cuboid: Cuboid) -> Mesh

Converts to this type from the input type.
Source§

impl FromArg for Cuboid

Source§

type This<'from_arg> = Cuboid

The type to convert into. Read more
Source§

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

Creates an item from an argument. Read more
Source§

impl FromReflect for Cuboid

Source§

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

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 Cuboid

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl GetTypeRegistration for Cuboid

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<Config, Clear> GizmoPrimitive3d<Cuboid> for GizmoBuffer<Config, Clear>
where Config: GizmoConfigGroup, Clear: 'static + Send + Sync,

Source§

type Output<'a> = () where GizmoBuffer<Config, Clear>: 'a

The output of primitive_3d. This is a builder to set non-default values.
Source§

fn primitive_3d( &mut self, primitive: &Cuboid, isometry: impl Into<Isometry3d>, color: impl Into<Color>, ) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive3d<Cuboid>>::Output<'_>

Renders a 3D primitive with its associated details.
Source§

impl IntoReturn for Cuboid

Source§

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

Converts Self into a Return value.
Source§

impl Measured3d for Cuboid

Source§

fn area(&self) -> f32

Get the surface area of the cuboid

Source§

fn volume(&self) -> f32

Get the volume of the cuboid

Source§

impl Meshable for Cuboid

Source§

type Output = CuboidMeshBuilder

The output of Self::mesh. This will be a MeshBuilder used for creating a Mesh.
Source§

fn mesh(&self) -> <Cuboid as Meshable>::Output

Creates a Mesh for a shape.
Source§

impl PartialEq for Cuboid

Source§

fn eq(&self, other: &Cuboid) -> 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 Cuboid

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<Cuboid>) -> ReflectOwned

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

fn try_into_reflect( self: Box<Cuboid>, ) -> 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<Cuboid>) -> 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 debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. 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 to_dynamic(&self) -> Box<dyn PartialReflect>

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

fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
where T: 'static, Self: Sized + TypePath,

For a type implementing PartialReflect, combines reflect_clone and take in a useful fashion, automatically constructing an appropriate ReflectCloneError if the downcast fails. Read more
Source§

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

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

fn is_dynamic(&self) -> bool

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

impl Reflect for Cuboid

Source§

fn into_any(self: Box<Cuboid>) -> 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<Cuboid>) -> 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 Serialize for Cuboid

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ShapeSample for Cuboid

Source§

type Output = Vec3

The type of vector returned by the sample methods, Vec2 for 2D shapes and Vec3 for 3D shapes.
Source§

fn sample_interior<R>(&self, rng: &mut R) -> Vec3
where R: Rng + ?Sized,

Uniformly sample a point from inside the area/volume of this shape, centered on 0. Read more
Source§

fn sample_boundary<R>(&self, rng: &mut R) -> Vec3
where R: Rng + ?Sized,

Uniformly sample a point from the surface of this shape, centered on 0. Read more
Source§

fn interior_dist(self) -> impl Distribution<Self::Output>
where Self: Sized,

Extract a Distribution whose samples are points of this shape’s interior, taken uniformly. Read more
Source§

fn boundary_dist(self) -> impl Distribution<Self::Output>
where Self: Sized,

Extract a Distribution whose samples are points of this shape’s boundary, taken uniformly. Read more
Source§

impl Struct for Cuboid

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

Creates a new DynamicStruct from this struct.
Source§

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

Will return None if TypeInfo is not available.
Source§

impl TypePath for Cuboid

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 Cuboid

Source§

fn type_info() -> &'static TypeInfo

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

impl Copy for Cuboid

Source§

impl Primitive3d for Cuboid

Source§

impl StructuralPartialEq for Cuboid

Auto Trait Implementations§

§

impl Freeze for Cuboid

§

impl RefUnwindSafe for Cuboid

§

impl Send for Cuboid

§

impl Sync for Cuboid

§

impl Unpin for Cuboid

§

impl UnwindSafe for Cuboid

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 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, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

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

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> InitializeFromFunction<T> for T

Source§

fn initialize_from_function(f: fn() -> T) -> T

Create an instance of this type from an initialization function
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<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

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

Source§

fn into_sample(self) -> T

Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<Ret> SpawnIfAsync<(), Ret> for Ret

Source§

fn spawn(self) -> Ret

Spawn the value into the dioxus runtime if it is an async block
Source§

impl<T, O> SuperFrom<T> for O
where O: From<T>,

Source§

fn super_from(input: T) -> O

Convert from a type to another type.
Source§

impl<T, O, M> SuperInto<O, M> for T
where O: SuperFrom<T, M>,

Source§

fn super_into(self) -> O

Convert from a type to another type.
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§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of this value.
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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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,