/// <summary> /// Convert the raw value of <paramref name="This" /> key's node. /// </summary> public static T GetValue <T>(this IKeyData This, IKeyDataValueConverter valueConverter = null) { if (This == null) { return(default(T)); } var value = This.RawValue; var keyData = This as KeyData; valueConverter = valueConverter == null && keyData != null?keyData.ValueConverter() : valueConverter; valueConverter = valueConverter ?? Etcd.Configuration.ValueConverter; return(valueConverter.Read <T>(value)); }
/// <summary> /// The value to convert to a string and set for this key's node. /// </summary> public static IUpsertKeyRequest WithValue <T>(this IUpsertKeyRequest This, T value, IKeyDataValueConverter valueConverter = null) { return(This.WithValue(Convert(This.EtcdClient.Config, value, valueConverter))); }
/// <summary> /// The new value to convert to a string and set for this key's node. /// </summary> public static ICompareAndSwapByValueRequest WithNewValue <T>(this ICompareAndSwapByValueRequest This, T value, IKeyDataValueConverter valueConverter = null) { return(This.WithNewValue(Convert(This.EtcdClient.Config, value, valueConverter))); }
private static string Convert <T>(IEtcdClientConfig config, T value, IKeyDataValueConverter valueConverter = null) { valueConverter = valueConverter ?? (config.ValueConverter ?? Etcd.Configuration.ValueConverter); return(valueConverter.Write(value)); }