pub trait AttributeDescriptor {
// Required method
fn get_attributes() -> &'static [Attribute];
}Expand description
Needed to be implemented for Vertex for using it in Mesh
§Examples
use std::mem::offset_of;
use crystal_api::mesh::{AttributeDescriptor, Attribute};
type Vec3 = [f32; 3];
type Vec2 = [f32; 2];
#[repr(C)]
#[derive(Clone, Copy, Default)]
pub struct VertexTexture {
pos: Vec3,
uv: Vec2,
}
impl AttributeDescriptor for VertexTexture {
fn get_attributes() -> &'static [Attribute] {
&[
Attribute {
size: size_of::<Vec3>(),
offset: offset_of!(Self, pos),
},
Attribute {
size: size_of::<Vec2>(),
offset: offset_of!(Self, uv),
},
]
}
}Required Methods§
Sourcefn get_attributes() -> &'static [Attribute]
fn get_attributes() -> &'static [Attribute]
Should return attributes of Vertex
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".