src/necsus/compiletime/tupleDirective

Types

TupleDirective = ref object
  args*: seq[DirectiveArg]
  name*: string
A directive that contains a single tuple

Procs

proc `$`(dir: TupleDirective): string {....raises: [], tags: [], forbids: [].}
proc `<`(a, b: TupleDirective): auto {....raises: [], tags: [], forbids: [].}
Compare two Directive instances
proc `==`(a, b: TupleDirective): auto {....raises: [], tags: [], forbids: [].}
Compare two Directive instances
proc bits(dir: TupleDirective): Bits {....raises: [], tags: [], forbids: [].}
Presents this tuple as a set of bits
proc comps(directive: TupleDirective): seq[ComponentDef] {....raises: [], tags: [],
    forbids: [].}
Produce all components in a directive
proc contains(directive: TupleDirective; comp: ComponentDef): bool {....raises: [],
    tags: [], forbids: [].}
Returns the index of a component in this directive
proc filter(dir: TupleDirective): BitsFilter {....raises: [], tags: [], forbids: [].}
Returns the filter for a tuple
proc hasAccessories(dir: TupleDirective): bool {....raises: [], tags: [],
    forbids: [].}
Whether this tuple contains any accessory components
proc hash(directive: TupleDirective): Hash {....raises: [], tags: [], forbids: [].}
proc indexOf(directive: TupleDirective; comp: ComponentDef): int {.
    ...raises: [KeyError], tags: [], forbids: [].}
Returns the index of a component in this directive
proc newTupleDir(args: openArray[DirectiveArg]): TupleDirective {....raises: [],
    tags: [], forbids: [].}
Create a TupleDirective
proc newTupleDir(comps: openArray[ComponentDef]): TupleDirective {....raises: [],
    tags: [], forbids: [].}
Create a TupleDirective
proc readable(dir: TupleDirective): string {....raises: [], tags: [], forbids: [].}
proc signature(dir: TupleDirective): string {....raises: [], tags: [], forbids: [].}
Generates a unique ID for a tuple

Iterators

iterator args(directive: TupleDirective): DirectiveArg {....raises: [], tags: [],
    forbids: [].}
Produce all args in a directive
iterator items(directive: TupleDirective): ComponentDef {....raises: [], tags: [],
    forbids: [].}
Produce all components in a directive