File: tobject_assign.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (49 lines) | stat: -rw-r--r-- 968 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# bug #16706

block: # reduced example
  type
    A = object of RootObj
      a0: string
    B = object
      b0: seq[A]
  var c = newSeq[A](2)
  var d = B(b0: c)

when true: # original example
  import std/[options, tables, times]

  type
    Data* = object
      shifts*: OrderedTable[int64, Shift]
      balance*: float

    Shift* = object
      quoted*: bool
      date*: DateTime
      description*: string
      start*: Option[DateTime]
      finish*: Option[DateTime]
      breakTime*: Option[Duration]
      rate*: float
      qty: Option[float]
      id*: int64

  let shift = Shift(
    quoted: true,
    date: parse("2000-01-01", "yyyy-MM-dd"),
    description: "abcdef",
    start: none(DateTime),
    finish: none(DateTime),
    breakTime: none(Duration),
    rate: 462.11,
    qty: some(10.0),
    id: getTime().toUnix()
  )

  var shifts: OrderedTable[int64, Shift]
  shifts[shift.id] = shift

  discard Data(
    shifts: shifts,
    balance: 0.00
  )