src/necsus/compiletime/directiveArg

Types

DirectiveArg = ref object
  component*: ComponentDef
  isPointer*: bool
  kind*: DirectiveArgKind
Represents a single argument within a directive. For example, in: Query[(Foo, Bar, Baz)] This would just represent Foo or Bar or Baz
DirectiveArgKind = enum
  Include, Exclude, Optional
Indicates the behavior of a directive

Procs

proc `$`(arg: DirectiveArg): string {....raises: [], tags: [], forbids: [].}
proc `<`(a, b: DirectiveArg): auto {....raises: [], tags: [], forbids: [].}
Allow deterministic sorting of directives
proc `==`(a, b: DirectiveArg): auto {....raises: [], tags: [], forbids: [].}
Compare two Directive instances
proc addSignature(onto: var string; arg: DirectiveArg) {....raises: [], tags: [],
    forbids: [].}
Generate a unique ID for a component
proc comps(args: openArray[DirectiveArg]): seq[ComponentDef] {....raises: [],
    tags: [], forbids: [].}
Returns all the components from a set of args
proc generateName(args: openArray[DirectiveArg]): string {....raises: [], tags: [],
    forbids: [].}
Creates a name to describe the given components
proc hash(arg: DirectiveArg): Hash {....raises: [], tags: [], forbids: [].}
Generate a unique hash
proc isAccessory(arg: DirectiveArg): bool {....raises: [], tags: [], forbids: [].}
Whether this arg contains an accessory component
proc newDirectiveArg(component: ComponentDef; isPointer: bool;
                     kind: DirectiveArgKind): DirectiveArg {....raises: [],
    tags: [], forbids: [].}
Creates a DirectiveArg
proc `type`(def: DirectiveArg): NimNode {....raises: [], tags: [], forbids: [].}
The type of this component