Esempio n. 1
0
      public A read(IPrefValueBackend backend, string key, A defaultVal) {
        var serialized = backend.getString(key, DEFAULT_VALUE);

        if (string.IsNullOrEmpty(serialized)) return deserializationFailed(key, defaultVal, serialized);
        if (serialized == DEFAULT_VALUE) return defaultVal;

        var serializedWithoutDiscriminator = serialized.Substring(1);
        var opt = deserialize(serializedWithoutDiscriminator);
        return opt.isSome ? opt.get : deserializationFailed(key, defaultVal, serialized);
      }
Esempio n. 2
0
 public PrefValImpl(
     string key, IPrefValueRW <A> rw, A defaultVal,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     writer                = rw;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     _value                = persist(rw.read(backend, key, defaultVal));
 }
Esempio n. 3
0
 public PrefVal(
     string key, A defaultValue, Fn <string, A, A> reader, Act <string, A> writer,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     this.writer           = writer;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     value = reader(key, defaultValue);
 }
Esempio n. 4
0
 public PrefValImpl(
     string key, Fn <A> reader, Act <A> writer,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     this.writer           = writer;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     _value = persist(reader());
 }
Esempio n. 5
0
 public static void setBool(
     this IPrefValueBackend backend, string name, bool value
     ) => backend.setInt(name, bool2int(value));
Esempio n. 6
0
 public static bool getBool(
     this IPrefValueBackend backend, string name, bool defaultValue
     ) => backend.getInt(name, bool2int(defaultValue)) != 0;
Esempio n. 7
0
 public void write(IPrefValueBackend backend, string key, bool value) =>
   backend.setBool(key, value);
Esempio n. 8
0
 public bool read(IPrefValueBackend backend, string key, bool defaultVal) =>
   backend.getBool(key, defaultVal);
Esempio n. 9
0
 public void write(IPrefValueBackend backend, string key, float value) =>
   backend.setFloat(key, value);
Esempio n. 10
0
 public DateTime read(IPrefValueBackend backend, string key, DateTime defaultVal) =>
   deserializeDate(backend.getString(key, serializeDate(defaultVal)));
Esempio n. 11
0
 public uint read(IPrefValueBackend backend, string key, uint defaultVal) =>
   backend.getUInt(key, defaultVal);
Esempio n. 12
0
 public string read(IPrefValueBackend backend, string key, string defaultVal) => 
   backend.getString(key, defaultVal);
Esempio n. 13
0
 public void write(IPrefValueBackend backend, string key, string value) =>
   backend.setString(key, value);
Esempio n. 14
0
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, map(value));
Esempio n. 15
0
 public A read(IPrefValueBackend backend, string key, A defaultVal) {
   var str = backend.getString(key, CUSTOM_V1_DEFAULT);
   return str == CUSTOM_V1_DEFAULT ? defaultVal : comap(str);
 }
Esempio n. 16
0
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, $"{NON_DEFAULT_VALUE_DISCRIMINATOR}{serialize(value)}");
Esempio n. 17
0
 public static uint getUInt(
     this IPrefValueBackend backend, string name, uint defaultValue
     ) =>
 unchecked ((uint)backend.getInt(name, unchecked ((int)defaultValue)));
Esempio n. 18
0
 public PrefValStorage(IPrefValueBackend backend)
 {
     this.backend = backend;
 }
Esempio n. 19
0
 public static void setUInt(
     this IPrefValueBackend backend, string name, uint value
     ) =>
 backend.setInt(name, unchecked ((int)value));
Esempio n. 20
0
 public void write(IPrefValueBackend backend, string key, Duration value) =>
   backend.setInt(key, value.millis);
Esempio n. 21
0
 public void write(IPrefValueBackend backend, string key, uint value) =>
   backend.setUInt(key, value);
Esempio n. 22
0
 public void write(IPrefValueBackend backend, string key, DateTime value) =>
   backend.setString(key, serializeDate(value));
Esempio n. 23
0
 public float read(IPrefValueBackend backend, string key, float defaultVal) =>
   backend.getFloat(key, defaultVal);
Esempio n. 24
0
 public Duration read(IPrefValueBackend backend, string key, Duration defaultVal) =>
   new Duration(backend.getInt(key, defaultVal.millis));