public IClickHouseTableColumn Dispatch <TEnum>(IClickHouseEnumConverter <TEnum> enumConverter) where TEnum : Enum { var map = new Dictionary <TValue, TEnum>(_reversedEnumMap.Count); foreach (var pair in _reversedEnumMap) { if (TryMap(enumConverter, pair.Key, pair.Value, out var enumValue)) { map.Add(pair.Key, enumValue); } } return(new EnumTableColumn <TValue, TEnum>(_column, map, _reversedEnumMap)); }
protected override bool TryMap <TEnum>(IClickHouseEnumConverter <TEnum> enumConverter, short value, string stringValue, out TEnum enumValue) { return(enumConverter.TryMap(value, stringValue, out enumValue)); }
protected abstract bool TryMap <TEnum>(IClickHouseEnumConverter <TEnum> enumConverter, TValue value, string stringValue, out TEnum enumValue) where TEnum : Enum;
public ClickHouseColumnSettings(IClickHouseEnumConverter enumConverter) { EnumConverter = enumConverter ?? throw new ArgumentNullException(nameof(enumConverter)); }