Skip to content

Frame

Defined in: frame.rs:147

pub trait Frame: sealed::Sealed + [core::fmt::Debug](https://doc.rust-lang.org/std/fmt/trait.Debug.html) + [Copy](https://doc.rust-lang.org/std/marker/trait.Copy.html) + [PartialEq](https://doc.rust-lang.org/std/cmp/trait.PartialEq.html) + [Eq](https://doc.rust-lang.org/std/cmp/trait.Eq.html) + [Send](https://doc.rust-lang.org/std/marker/trait.Send.html) + [Sync](https://doc.rust-lang.org/std/marker/trait.Sync.html) + 'static

Top-level frame trait. Implemented by every concrete frame marker.

Provides NAME and DESCRIPTOR for runtime identification. Sealed: new frames can only be added inside arika.

Every frame is a ZST marker, so the trait requires the auto/derivable traits that fact implies. Stating them once here is what lets the frame-tagged types (Vec3, Rotation) and everything generic over a frame simply derive Clone / Copy / PartialEq and pick up Send / Sync, instead of each working around the phantom parameter on its own.