How to abstract a C bit fields with Odin's `bit_set`?

Do log2 of the value.

Env_Flags :: distinct bit_set[Env_Flag; c.uint]

Env_Flag :: enum c.uint {
	FIXEDMAP     = 0,
	NOSUBDIR     = 14,
	RDONLY       = 17,
	WRITEMAP     = 19,
	NOMETASYNC   = 18,
	NOSYNC       = 16,
	MAPASYNC     = 20,
	NOTLS        = 21,
	NOLOCK       = 22,
	NORDAHEAD    = 23,
	NOMEMINIT    = 24,
	PREVSNAPSHOT = 25,
}
5 Likes