using System.Diagnostics.CodeAnalysis;
namespace Jint.Runtime.Interop;
///
/// Handles conversions between CLR types.
///
public interface ITypeConverter
{
///
/// Converts value to to type. Throws exception if cannot be done.
///
object? Convert(
object? value,
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicFields)] Type type,
IFormatProvider formatProvider);
///
/// Converts value to to type. Returns false if cannot be done.
///
bool TryConvert(
object? value,
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicFields)] Type type,
IFormatProvider formatProvider,
[NotNullWhen(true)] out object? converted);
}