Exemple #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);
      }
Exemple #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));
 }
Exemple #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);
 }
Exemple #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());
 }
Exemple #5
0
 public static void setBool(
     this IPrefValueBackend backend, string name, bool value
     ) => backend.setInt(name, bool2int(value));
Exemple #6
0
 public static bool getBool(
     this IPrefValueBackend backend, string name, bool defaultValue
     ) => backend.getInt(name, bool2int(defaultValue)) != 0;
Exemple #7
0
 public void write(IPrefValueBackend backend, string key, bool value) =>
   backend.setBool(key, value);
Exemple #8
0
 public bool read(IPrefValueBackend backend, string key, bool defaultVal) =>
   backend.getBool(key, defaultVal);
Exemple #9
0
 public void write(IPrefValueBackend backend, string key, float value) =>
   backend.setFloat(key, value);
Exemple #10
0
 public DateTime read(IPrefValueBackend backend, string key, DateTime defaultVal) =>
   deserializeDate(backend.getString(key, serializeDate(defaultVal)));
Exemple #11
0
 public uint read(IPrefValueBackend backend, string key, uint defaultVal) =>
   backend.getUInt(key, defaultVal);
Exemple #12
0
 public string read(IPrefValueBackend backend, string key, string defaultVal) => 
   backend.getString(key, defaultVal);
Exemple #13
0
 public void write(IPrefValueBackend backend, string key, string value) =>
   backend.setString(key, value);
Exemple #14
0
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, map(value));
Exemple #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);
 }
Exemple #16
0
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, $"{NON_DEFAULT_VALUE_DISCRIMINATOR}{serialize(value)}");
Exemple #17
0
 public static uint getUInt(
     this IPrefValueBackend backend, string name, uint defaultValue
     ) =>
 unchecked ((uint)backend.getInt(name, unchecked ((int)defaultValue)));
Exemple #18
0
 public PrefValStorage(IPrefValueBackend backend)
 {
     this.backend = backend;
 }
Exemple #19
0
 public static void setUInt(
     this IPrefValueBackend backend, string name, uint value
     ) =>
 backend.setInt(name, unchecked ((int)value));
Exemple #20
0
 public void write(IPrefValueBackend backend, string key, Duration value) =>
   backend.setInt(key, value.millis);
Exemple #21
0
 public void write(IPrefValueBackend backend, string key, uint value) =>
   backend.setUInt(key, value);
Exemple #22
0
 public void write(IPrefValueBackend backend, string key, DateTime value) =>
   backend.setString(key, serializeDate(value));
Exemple #23
0
 public float read(IPrefValueBackend backend, string key, float defaultVal) =>
   backend.getFloat(key, defaultVal);
Exemple #24
0
 public Duration read(IPrefValueBackend backend, string key, Duration defaultVal) =>
   new Duration(backend.getInt(key, defaultVal.millis));