src/metronome/cron/expr

Types

Expr = ref object
  case kind*: ExprKind
  of ekNum:
    num*: int
  of ekStep:
    stepExpr*: Expr
    step*: int
  of ekRange:
    rangeSlice*: Slice[int]
  of ekSeq:
    exprs*: seq[Expr]
  of ekIndex:
    indexer*: int
    index*: int
  of ekNearest:
  of ekLastN:
    last*: int
  else:
    nil
ExprKind = enum
  ekAll, ekAny, ekLast, ekLastN, ekHash, ekNum, ekStep, ekRange, ekSeq, ekIndex,
  ekNearest

Procs

proc `$`(expr: Expr): string {....raises: [Exception], tags: [RootEffect],
                               forbids: [].}
proc newAllExpr(): Expr {....raises: [], tags: [], forbids: [].}
proc newAnyExpr(): Expr {....raises: [], tags: [], forbids: [].}
proc newHashExpr(): Expr {....raises: [], tags: [], forbids: [].}
proc newIndexExpr(indexer: int; index: int): Expr {....raises: [], tags: [],
    forbids: [].}
proc newLastExpr(): Expr {....raises: [], tags: [], forbids: [].}
proc newLastNExpr(last: int): Expr {....raises: [], tags: [], forbids: [].}
proc newNearestExpr(nearest: int): Expr {....raises: [], tags: [], forbids: [].}
proc newNumExpr(num: int): Expr {....raises: [], tags: [], forbids: [].}
proc newRangeExpr(start: int; stop: int): Expr {....raises: [], tags: [],
    forbids: [].}
proc newSeqExpr(exprs: seq[Expr]): Expr {....raises: [], tags: [], forbids: [].}
proc newStepExpr(expr: Expr; step: int): Expr {....raises: [], tags: [],
    forbids: [].}