After checking with @jlee-r7 , and OptEnum could work here. Just would need to use more user-friendly options for the enumeration. Sounds like NI_MSG_IO, NI_RAW_IO or NI_ROUT_IO options, or just numbers (0, 1, 2) are internals concepts the user couldn't be aware of. So, please, just use user-friendly options for the enumerations and will be fine :).