Trait Components

Source
pub trait Components: 'static {
    type Keys: AsRef<[ComponentKey]>;
    type Infos: AsRef<[TypeInfo]>;

    const LEN: usize;

    // Required methods
    fn keys() -> Self::Keys;
    fn infos() -> Self::Infos;
    fn sorted_keys() -> Self::Keys;
}
Expand description

A set of Components.

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn keys() -> Self::Keys

Returns ComponentKeys in declared field order.

Source

fn infos() -> Self::Infos

Returns TypeInfos in declared field order.

Source

fn sorted_keys() -> Self::Keys

Returns sorted ComponentKeys.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Components for ()

Source§

const LEN: usize = 0usize

Source§

type Keys = [ATypeId<ComponentKey_>; 0]

Source§

type Infos = [TypeInfo; 0]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component> Components for (A0, A1)

Source§

const LEN: usize = 2usize

Source§

type Keys = [ATypeId<ComponentKey_>; 2]

Source§

type Infos = [TypeInfo; 2]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component> Components for (A0, A1, A2)

Source§

const LEN: usize = 3usize

Source§

type Keys = [ATypeId<ComponentKey_>; 3]

Source§

type Infos = [TypeInfo; 3]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component> Components for (A0, A1, A2, A3)

Source§

const LEN: usize = 4usize

Source§

type Keys = [ATypeId<ComponentKey_>; 4]

Source§

type Infos = [TypeInfo; 4]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component> Components for (A0, A1, A2, A3, A4)

Source§

const LEN: usize = 5usize

Source§

type Keys = [ATypeId<ComponentKey_>; 5]

Source§

type Infos = [TypeInfo; 5]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component> Components for (A0, A1, A2, A3, A4, A5)

Source§

const LEN: usize = 6usize

Source§

type Keys = [ATypeId<ComponentKey_>; 6]

Source§

type Infos = [TypeInfo; 6]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component> Components for (A0, A1, A2, A3, A4, A5, A6)

Source§

const LEN: usize = 7usize

Source§

type Keys = [ATypeId<ComponentKey_>; 7]

Source§

type Infos = [TypeInfo; 7]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7)

Source§

const LEN: usize = 8usize

Source§

type Keys = [ATypeId<ComponentKey_>; 8]

Source§

type Infos = [TypeInfo; 8]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8)

Source§

const LEN: usize = 9usize

Source§

type Keys = [ATypeId<ComponentKey_>; 9]

Source§

type Infos = [TypeInfo; 9]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)

Source§

const LEN: usize = 10usize

Source§

type Keys = [ATypeId<ComponentKey_>; 10]

Source§

type Infos = [TypeInfo; 10]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)

Source§

const LEN: usize = 11usize

Source§

type Keys = [ATypeId<ComponentKey_>; 11]

Source§

type Infos = [TypeInfo; 11]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)

Source§

const LEN: usize = 12usize

Source§

type Keys = [ATypeId<ComponentKey_>; 12]

Source§

type Infos = [TypeInfo; 12]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)

Source§

const LEN: usize = 13usize

Source§

type Keys = [ATypeId<ComponentKey_>; 13]

Source§

type Infos = [TypeInfo; 13]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)

Source§

const LEN: usize = 14usize

Source§

type Keys = [ATypeId<ComponentKey_>; 14]

Source§

type Infos = [TypeInfo; 14]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)

Source§

const LEN: usize = 15usize

Source§

type Keys = [ATypeId<ComponentKey_>; 15]

Source§

type Infos = [TypeInfo; 15]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)

Source§

const LEN: usize = 16usize

Source§

type Keys = [ATypeId<ComponentKey_>; 16]

Source§

type Infos = [TypeInfo; 16]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)

Source§

const LEN: usize = 17usize

Source§

type Keys = [ATypeId<ComponentKey_>; 17]

Source§

type Infos = [TypeInfo; 17]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)

Source§

const LEN: usize = 18usize

Source§

type Keys = [ATypeId<ComponentKey_>; 18]

Source§

type Infos = [TypeInfo; 18]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)

Source§

const LEN: usize = 19usize

Source§

type Keys = [ATypeId<ComponentKey_>; 19]

Source§

type Infos = [TypeInfo; 19]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)

Source§

const LEN: usize = 20usize

Source§

type Keys = [ATypeId<ComponentKey_>; 20]

Source§

type Infos = [TypeInfo; 20]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)

Source§

const LEN: usize = 21usize

Source§

type Keys = [ATypeId<ComponentKey_>; 21]

Source§

type Infos = [TypeInfo; 21]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)

Source§

const LEN: usize = 22usize

Source§

type Keys = [ATypeId<ComponentKey_>; 22]

Source§

type Infos = [TypeInfo; 22]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22)

Source§

const LEN: usize = 23usize

Source§

type Keys = [ATypeId<ComponentKey_>; 23]

Source§

type Infos = [TypeInfo; 23]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23)

Source§

const LEN: usize = 24usize

Source§

type Keys = [ATypeId<ComponentKey_>; 24]

Source§

type Infos = [TypeInfo; 24]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24)

Source§

const LEN: usize = 25usize

Source§

type Keys = [ATypeId<ComponentKey_>; 25]

Source§

type Infos = [TypeInfo; 25]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25)

Source§

const LEN: usize = 26usize

Source§

type Keys = [ATypeId<ComponentKey_>; 26]

Source§

type Infos = [TypeInfo; 26]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26)

Source§

const LEN: usize = 27usize

Source§

type Keys = [ATypeId<ComponentKey_>; 27]

Source§

type Infos = [TypeInfo; 27]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component, A27: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27)

Source§

const LEN: usize = 28usize

Source§

type Keys = [ATypeId<ComponentKey_>; 28]

Source§

type Infos = [TypeInfo; 28]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component, A27: Component, A28: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28)

Source§

const LEN: usize = 29usize

Source§

type Keys = [ATypeId<ComponentKey_>; 29]

Source§

type Infos = [TypeInfo; 29]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component, A27: Component, A28: Component, A29: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29)

Source§

const LEN: usize = 30usize

Source§

type Keys = [ATypeId<ComponentKey_>; 30]

Source§

type Infos = [TypeInfo; 30]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component, A27: Component, A28: Component, A29: Component, A30: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30)

Source§

const LEN: usize = 31usize

Source§

type Keys = [ATypeId<ComponentKey_>; 31]

Source§

type Infos = [TypeInfo; 31]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Source§

impl<A0: Component, A1: Component, A2: Component, A3: Component, A4: Component, A5: Component, A6: Component, A7: Component, A8: Component, A9: Component, A10: Component, A11: Component, A12: Component, A13: Component, A14: Component, A15: Component, A16: Component, A17: Component, A18: Component, A19: Component, A20: Component, A21: Component, A22: Component, A23: Component, A24: Component, A25: Component, A26: Component, A27: Component, A28: Component, A29: Component, A30: Component, A31: Component> Components for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31)

Source§

const LEN: usize = 32usize

Source§

type Keys = [ATypeId<ComponentKey_>; 32]

Source§

type Infos = [TypeInfo; 32]

Source§

fn keys() -> Self::Keys

Source§

fn infos() -> Self::Infos

Source§

fn sorted_keys() -> Self::Keys

Implementors§

Source§

impl<A0: Component> Components for A0

Source§

const LEN: usize = 1usize

Source§

type Keys = [ATypeId<ComponentKey_>; 1]

Source§

type Infos = [TypeInfo; 1]