DictionaryValueConverter<T>
using AngleSharp.Dom.Css;
using AngleSharp.Extensions;
using System;
using System.Collections.Generic;
namespace AngleSharp.Css.ValueConverters
{
internal sealed class DictionaryValueConverter<T> : IValueConverter<T>, IValueConverter
{
private readonly Dictionary<string, T> _values;
public int MinArgs => 1;
public int MaxArgs => 1;
public DictionaryValueConverter(Dictionary<string, T> values)
{
_values = values;
}
public bool TryConvert(ICssValue value, Action<T> setResult)
{
T mode = default(T);
if (!ValueExtensions.TryGetValue<T>(_values, value, out mode))
return false;
setResult(mode);
return true;
}
public bool Validate(ICssValue value)
{
T mode = default(T);
return ValueExtensions.TryGetValue<T>(_values, value, out mode);
}
}
}