Nim loves object variants 
    
    
    import marshal
    
    type
      DocKind = enum
        TextDoc,TodoDoc
      DocItem = object
        case kind:DocKind
        of TextDoc:
          text:string
        of TodoDoc:
          todo:string
        tags:seq[string]
    
    
    var docs: seq[DocItem]
    
    docs.add DocItem(kind:TextDoc, text: "some doc", tags: @["help"])
    docs.add DocItem(kind:TodoDoc,todo: "some todo")
    
    echo $$docs
    
    
    Run

Reply via email to