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); }
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)); }
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); }
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()); }
public static void setBool( this IPrefValueBackend backend, string name, bool value ) => backend.setInt(name, bool2int(value));
public static bool getBool( this IPrefValueBackend backend, string name, bool defaultValue ) => backend.getInt(name, bool2int(defaultValue)) != 0;
public void write(IPrefValueBackend backend, string key, bool value) => backend.setBool(key, value);
public bool read(IPrefValueBackend backend, string key, bool defaultVal) => backend.getBool(key, defaultVal);
public void write(IPrefValueBackend backend, string key, float value) => backend.setFloat(key, value);
public DateTime read(IPrefValueBackend backend, string key, DateTime defaultVal) => deserializeDate(backend.getString(key, serializeDate(defaultVal)));
public uint read(IPrefValueBackend backend, string key, uint defaultVal) => backend.getUInt(key, defaultVal);
public string read(IPrefValueBackend backend, string key, string defaultVal) => backend.getString(key, defaultVal);
public void write(IPrefValueBackend backend, string key, string value) => backend.setString(key, value);
public void write(IPrefValueBackend backend, string key, A value) => backend.setString(key, map(value));
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); }
public void write(IPrefValueBackend backend, string key, A value) => backend.setString(key, $"{NON_DEFAULT_VALUE_DISCRIMINATOR}{serialize(value)}");
public static uint getUInt( this IPrefValueBackend backend, string name, uint defaultValue ) => unchecked ((uint)backend.getInt(name, unchecked ((int)defaultValue)));
public PrefValStorage(IPrefValueBackend backend) { this.backend = backend; }
public static void setUInt( this IPrefValueBackend backend, string name, uint value ) => backend.setInt(name, unchecked ((int)value));
public void write(IPrefValueBackend backend, string key, Duration value) => backend.setInt(key, value.millis);
public void write(IPrefValueBackend backend, string key, uint value) => backend.setUInt(key, value);
public void write(IPrefValueBackend backend, string key, DateTime value) => backend.setString(key, serializeDate(value));
public float read(IPrefValueBackend backend, string key, float defaultVal) => backend.getFloat(key, defaultVal);
public Duration read(IPrefValueBackend backend, string key, Duration defaultVal) => new Duration(backend.getInt(key, defaultVal.millis));