Types
FillChannel = tuple[idx: Slice[int], dest: string, kind: SlotKind]
SlotKind = enum Required, Optional, Wildcard
Procs
proc channels(filler; nargs: int): seq[FillChannel] {....raises: [], tags: [].}
- Given the number of arguments, show where those arguments will go
proc generate(filler; containerName: string): NimNode {....raises: [], tags: [].}
proc hasVariableArgs(filler): bool {....raises: [], tags: [].}
proc hasWildcard(filler): bool {....raises: [], tags: [].}
proc minArgs(filler): int {....raises: [], tags: [].}
proc missing(filler; nargs: int): seq[string] {....raises: [], tags: [].}
- Given the number of arguments, which required arguments will not get a value?
proc newArgFiller(): ref ArgFiller {....raises: [], tags: [].}
proc numArgsAfterWildcard(filler): int {....raises: [], tags: [].}
proc optional(filler; argname: string) {....raises: [], tags: [].}
proc required(filler; argname: string; nargs = 1) {....raises: [], tags: [].}
proc upperBreakpoint(filler): int {....raises: [], tags: [].}
proc wildcard(filler; argname: string) {....raises: [ValueError], tags: [].}