src/happyx/spa/state

Search:
Group by:

State 🍍

Provides reactivity states

Usage ⚡

var
  lvl = remember 1
  exp = remember 0
  maxExp = remember 10
  name = remember "Ethosa"

appRoutes("app"):
  "/":
    tDiv:
      "Hello, {name}, your level is {lvl} [{exp}/{maxExp}]"
    tButton:
      "Increase exp"
      @click:
        exp += 1
        while exp >= maxExp:
          exp -= maxExp
          lvl += 1
          maxExp += 5

Types

State[T] = ref object
  val*: T

Vars

enableRouting = true
Low-level API to disable/enable routing

Procs

func `!`[T](other`gensym10: T; self`gensym10: State[T]): T
func `!`[T](self`gensym10, other`gensym10: State[T]): T
func `!`[T](self`gensym10: State[T]; other`gensym10: T): T
proc `!=`[T](self`gensym1, other`gensym1: State[T]): bool
proc `!=`[T](self`gensym1: State[T]; other`gensym1: T): bool
func `$`[T](self: State[T]): string
Returns State's string representation
proc `$=`[T](other`gensym23: T; self`gensym23: State[T])
proc `$=`[T](self`gensym23: State[T]; other`gensym23: State[T])
proc `$=`[T](self`gensym23: State[T]; other`gensym23: T)
func `%`[T](other`gensym12: T; self`gensym12: State[T]): T
func `%`[T](self`gensym12, other`gensym12: State[T]): T
func `%`[T](self`gensym12: State[T]; other`gensym12: T): T
proc `%=`[T](other`gensym22: T; self`gensym22: State[T])
proc `%=`[T](self`gensym22: State[T]; other`gensym22: State[T])
proc `%=`[T](self`gensym22: State[T]; other`gensym22: T)
func `&`[T](other`gensym5: T; self`gensym5: State[T]): T
func `&`[T](self`gensym5, other`gensym5: State[T]): T
func `&`[T](self`gensym5: State[T]; other`gensym5: T): T
proc `&=`[T](other`gensym21: T; self`gensym21: State[T])
proc `&=`[T](self`gensym21: State[T]; other`gensym21: State[T])
proc `&=`[T](self`gensym21: State[T]; other`gensym21: T)
func `*`[T](other`gensym8: T; self`gensym8: State[T]): T
func `*`[T](self`gensym8, other`gensym8: State[T]): T
func `*`[T](self`gensym8: State[T]; other`gensym8: T): T
proc `*=`[T](other`gensym16: T; self`gensym16: State[T])
proc `*=`[T](self`gensym16: State[T]; other`gensym16: State[T])
proc `*=`[T](self`gensym16: State[T]; other`gensym16: T)
func `+`[T](other`gensym6: T; self`gensym6: State[T]): T
func `+`[T](self`gensym6, other`gensym6: State[T]): T
func `+`[T](self`gensym6: State[T]; other`gensym6: T): T
proc `+=`[T](other`gensym17: T; self`gensym17: State[T])
proc `+=`[T](self`gensym17: State[T]; other`gensym17: State[T])
proc `+=`[T](self`gensym17: State[T]; other`gensym17: T)
func `-`[T](other`gensym7: T; self`gensym7: State[T]): T
func `-`[T](self`gensym7, other`gensym7: State[T]): T
func `-`[T](self`gensym7: State[T]; other`gensym7: T): T
proc `-=`[T](other`gensym18: T; self`gensym18: State[T])
proc `-=`[T](self`gensym18: State[T]; other`gensym18: State[T])
proc `-=`[T](self`gensym18: State[T]; other`gensym18: T)
func `/`[T](other`gensym9: T; self`gensym9: State[T]): T
func `/`[T](self`gensym9, other`gensym9: State[T]): T
func `/`[T](self`gensym9: State[T]; other`gensym9: T): T
proc `/=`[T](other`gensym19: T; self`gensym19: State[T])
proc `/=`[T](self`gensym19: State[T]; other`gensym19: State[T])
proc `/=`[T](self`gensym19: State[T]; other`gensym19: T)
proc `:=`[T](other`gensym25: T; self`gensym25: State[T])
proc `:=`[T](self`gensym25: State[T]; other`gensym25: State[T])
proc `:=`[T](self`gensym25: State[T]; other`gensym25: T)
func `<`[T](other`gensym15: T; self`gensym15: State[T]): T
func `<`[T](self`gensym15, other`gensym15: State[T]): T
func `<`[T](self`gensym15: State[T]; other`gensym15: T): T
proc `<=`[T](self`gensym3, other`gensym3: State[T]): bool
proc `<=`[T](self`gensym3: State[T]; other`gensym3: T): bool
proc `==`[T](self`gensym0, other`gensym0: State[T]): bool
proc `==`[T](self`gensym0: State[T]; other`gensym0: T): bool
func `>`[T](other`gensym14: T; self`gensym14: State[T]): T
func `>`[T](self`gensym14, other`gensym14: State[T]): T
func `>`[T](self`gensym14: State[T]; other`gensym14: T): T
proc `>=`[T](self`gensym2, other`gensym2: State[T]): bool
proc `>=`[T](self`gensym2: State[T]; other`gensym2: T): bool
func `@`[T](other`gensym13: T; self`gensym13: State[T]): T
func `@`[T](self`gensym13, other`gensym13: State[T]): T
func `@`[T](self`gensym13: State[T]; other`gensym13: T): T
proc `@=`[T](other`gensym24: T; self`gensym24: State[T])
proc `@=`[T](self`gensym24: State[T]; other`gensym24: State[T])
proc `@=`[T](self`gensym24: State[T]; other`gensym24: T)
func `[]`(self: State[StringTableRef]; idx: string): string {.
    ...raises: [KeyError], tags: [], forbids: [].}
func `[]`[T, U](self: State[TableRef[T, U]]; idx: T): U
Returns State's item at idx index.
func `[]`[T](self: State[openArray[T]]; idx: int): T
Returns State's item at idx index.
func `[]`[T](self: State[openArray[T]]; idx: State[int]): T
Returns State's item at idx index.
proc `[]=`(self: State[StringTableRef]; idx: string; value: string) {.
    ...raises: [Exception], tags: [RootEffect], forbids: [].}
Changes State's item at idx index.
proc `[]=`[T, U](self: State[array[T, U]]; idx: int; value: T)
Changes State's item at idx index.
proc `[]=`[T, U](self: State[TableRef[T, U]]; idx: T; value: U)
Changes State's item at idx index.
proc `[]=`[T](self: State[seq[T]]; idx: int; value: T)
Changes State's item at idx index.
func `^`[T](other`gensym11: T; self`gensym11: State[T]): T
func `^`[T](self`gensym11, other`gensym11: State[T]): T
func `^`[T](self`gensym11: State[T]; other`gensym11: T): T
proc `^=`[T](other`gensym20: T; self`gensym20: State[T])
proc `^=`[T](self`gensym20: State[T]; other`gensym20: State[T])
proc `^=`[T](self`gensym20: State[T]; other`gensym20: T)
func get[T](self: State[T]): T
Returns state value Alias for val
func len[T](self: State[T]): int
Returns state value length
proc `not`[T](self`gensym4: State[T]): bool
func remember[T](val: T): State[T]
Creates a new state
proc set(settings: var LanguageSettings; lang: string) {....raises: [], tags: [],
    forbids: [].}
proc set[T](self: State[T]; value: T)
Changes state value and rerenders SPA
proc val=[T](self: State[T]; value: T)
Changes state value
proc `|=`[T](other`gensym26: T; self`gensym26: State[T])
proc `|=`[T](self`gensym26: State[T]; other`gensym26: State[T])
proc `|=`[T](self`gensym26: State[T]; other`gensym26: T)
proc `~=`[T](other`gensym27: T; self`gensym27: State[T])
proc `~=`[T](self`gensym27: State[T]; other`gensym27: State[T])
proc `~=`[T](self`gensym27: State[T]; other`gensym27: T)

Iterators

iterator items[T](self: State[openArray[T]]): T
Iterate over state items
iterator pairs[T, U](self: State[TableRef[T, U]]): (T, U)
Iterate over state items

Converters

converter toBool(self: State[bool]): bool {....raises: [], tags: [], forbids: [].}
Converts State into boolean if possible
converter toChar(self: State[char]): char {....raises: [], tags: [], forbids: [].}
Converts State into char if possible
converter toCString(self: State[cstring]): cstring {....raises: [], tags: [],
    forbids: [].}
Converts State into cstring if possible
converter toFloat(self: State[float]): float {....raises: [], tags: [], forbids: [].}
Converts State into float if possible
converter toFloat32(self: State[float32]): float32 {....raises: [], tags: [],
    forbids: [].}
Converts State into float32 if possible
converter toFloat64(self: State[float64]): float64 {....raises: [], tags: [],
    forbids: [].}
Converts State into float64 if possible
converter toInt(self: State[int]): int {....raises: [], tags: [], forbids: [].}
Converts State into int if possible
converter toInt8(self: State[int8]): int8 {....raises: [], tags: [], forbids: [].}
Converts State into int8 if possible
converter toInt16(self: State[int16]): int16 {....raises: [], tags: [], forbids: [].}
Converts State into int16 if possible
converter toInt32(self: State[int32]): int32 {....raises: [], tags: [], forbids: [].}
Converts State into int32 if possible
converter toInt64(self: State[int64]): int64 {....raises: [], tags: [], forbids: [].}
Converts State into int64 if possible
converter toSeq[T](self: State[seq[T]]): seq[T]
Converts State into seq[T] if possible
converter toString(self: State[string]): string {....raises: [], tags: [],
    forbids: [].}
Converts State into string if possible

Macros

macro `->`(self: State; field: untyped): untyped
Call any function that available for state value

Examples:

Seqs:

var arr: State[seq[int]] = remember @[]
arr->add(1)
echo arr

int:

var num = remember 0
num->inc()
echo num