using System.Collections;
using static LinqToDB.Reflection.Methods.LinqToDB.Insert;
namespace Pf2e.Web.Helpers.Format;
///
/// Абстрактный класс форматтера значений.
///
public abstract class ValueFormatter
{
///
/// Проверяет, может ли форматтер обработать указанный тип.
///
/// Тип значения.
/// true, если форматтер может обработать тип, иначе false.
public abstract bool CanFormat(Type type);
///
/// Форматирует значение для отображения.
///
/// Значение для форматирования.
/// Строковое представление отформатированного значения.
public abstract string Format(object value);
///
/// Форматирует имя типа для отображения.
///
/// Тип значения.
/// Строковое представление имени типа.
public virtual string TypeName(Type type) => type.Name;
}
///
/// Форматтер для конкретного типа.
///
/// Тип значения.
/// Функция форматирования значения.
public class TypeValueFormatter(Func