• Mahmood Ali's avatar
    api: avoid import nomad/structs pkg · 361d1e17
    Mahmood Ali authored
    nomad/structs is an internal package and imports many libraries (e.g.
    raft, codec) that are not relevant to api clients, and may cause
    unnecessary dependency pain (e.g. `github.com/ugorji/go/codec`
    version is very old now).
    
    Here, we add a code generator that imports the relevant constants from
    `nomad/structs`.
    
    I considered using this approach for other structs, but didn't find a
    quick viable way to reduce duplication.  `nomad/structs` use values as
    struct fields (e.g. `string`), while `api` uses value pointer (e.g.
    `*string`) instead.  Also, sometimes, `api` structs contain deprecated
    fields or additional documentation, so simple copy-paste doesn't work.
    For these reasons, I opt to keep the status quo.
    361d1e17