Solution was simple and didn't require macro, but I suggest to left this thread 
open, so we could continue. 
    
    
    type
      progress_specenum = object
        names: seq[cstring]
      
      progress_specenum_val[eT] = object
        meta: ref progress_specenum
        val: eT
    
    proc translate_to_enum(a: var progress_specenum; s: cstring): cint   = 
a.names.find(s).cint
    
    proc translate_to_string[eT](a: var progress_specenum_val[eT]) :cstring   = 
a.meta.names[a.val.ord]
    
    
    Run

I must probably cast type returned from translate_to_enum. Can I place enum 
type definition inside class definition (like in some languages similar to 
Java) ?

Reply via email to