dart enum string
enum Enum {
	enum1, enum2, enum3,
}
/// This calss does the job of converting from/to String for enum.
/// 
/// The alternative is to use built_value enum which kinda generates it
/// automatically. 
class EnumFactory {
  static final Map<String, Enum> _stringMap = {
    'enum1': Enum.enum1,
    'enum2': Enum.enum2,
    'enum3': Enum.enum3,
  };
  static Enum fromString(String string) {
    return _stringMap[string];
  }
  static String itemToString(Enum item) {
    return _stringMap.keys
        .firstWhere((key) => _stringMap[key] == item, orElse: () => null);
  }
}