Types
ActiveCheck = ref object value*: NimNode arg*: SystemArg
- A check that needs to be made before executing a system as part of the loop phase
ParsedApp = ref object name*: string runnerArgs*: seq[SystemArg] inputs*: AppInputs returns*: Option[MonoDirective]
- Parsed information about the application proc itself
ParsedSystem = ref object id*: int phase*: SystemPhase symbol*: NimNode prefixArgs*: seq[NimNode] args*: seq[SystemArg] instanced*: Option[NimNode] checks*: seq[ActiveCheck] returns*: NimNode
- Parsed information about a system proc
SystemPhase = enum StartupPhase, LoopPhase, TeardownPhase, SaveCallback, RestoreCallback, EventCallback, IndirectEventCallback
- When a system should be executed
Procs
proc `$`(check: ActiveCheck): string {....raises: [], tags: [], forbids: [].}
proc `$`(system: ParsedSystem): string {....raises: [], tags: [], forbids: [].}
proc callbackSysMailboxName(system: ParsedSystem): NimNode {....raises: [], tags: [], forbids: [].}
- The name of the mailbox to use for an event callback system
proc callbackSysType(system: ParsedSystem): NimNode {....raises: [], tags: [], forbids: [].}
- Returns the event type handled by a callback system
proc instancedInfo(system: ParsedSystem): Option[ tuple[fieldName: NimNode, typ: NimNode]] {....raises: [], tags: [], forbids: [].}
- Returns details about the instancing configuration for a type
proc newEmptyApp(name: string): ParsedApp {....raises: [], tags: [], forbids: [].}
- Creates an empty parsed app
proc parseSystemDef(ident: NimNode; impl: NimNode): ParsedSystem {. ...raises: [KeyError, Exception], tags: [RootEffect], forbids: [].}
- Parses a single system proc
proc parseSystemList(systems: NimNode): seq[ParsedSystem] {. ...raises: [KeyError, Exception], tags: [RootEffect], forbids: [].}
Iterators
iterator allArgs(system: ParsedSystem): SystemArg {....raises: [], tags: [], forbids: [].}
- Yields all args in a system
iterator args(systems: openArray[ParsedSystem]): SystemArg {....raises: [], tags: [], forbids: [].}
- Yields all args in a system
iterator components(app: ParsedApp): ComponentDef {....raises: [], tags: [], forbids: [].}
- List all components referenced by an app
iterator components(arg: SystemArg): ComponentDef {....raises: [], tags: [], forbids: [].}
- Pulls all components out of an argument
iterator components(systems: openArray[ParsedSystem]): ComponentDef {. ...raises: [], tags: [], forbids: [].}
- Pulls all components from a list of parsed systems