Not sure. I've copied this part from code in dt. The idea is that filter can be a set of dt_undo_type_t:

do_undo (DT_UNDO_GEOTAG|DT_UNDO_WHATEVERELSE|DO_UNDO_SOMETHINGELSE);

See another example view in dt_view_t struct returns an uint32_t which is in fact a value in dt_view_type_flags_t.

In fact we return the value of the enum and not the enum itself.