StructValueConverter<T>
using AngleSharp.Parser.Css;
using System;
using System.Collections.Generic;
namespace AngleSharp.Css.ValueConverters
{
internal sealed class StructValueConverter<T> : IValueConverter<T>, IValueConverter where T : struct
{
private readonly Func<IEnumerable<CssToken>, T?> _converter;
public StructValueConverter(Func<IEnumerable<CssToken>, T?> converter)
{
_converter = converter;
}
public bool TryConvert(IEnumerable<CssToken> value, Action<T> setResult)
{
T? nullable = _converter(value);
if (nullable.HasValue) {
setResult(nullable.Value);
return true;
}
return false;
}
public bool Validate(IEnumerable<CssToken> value)
{
return _converter(value).HasValue;
}
}
}