register<T> method

void register<T>(
  1. T casterFn(
    1. dynamic value, {
    2. T orElse()?,
    })
)

Registers a custom caster function for a specific type.

The casterFn function should take a dynamic value and optional orElse function and return an instance of type T.

Example:

TypeCasterRegistry.instance.register<User>((dynamic value, {User Function()? orElse}) {
  if (value is Map<String, dynamic>) {
    return User.fromJson(value);
  }
  if (orElse != null) {
    return orElse();
  }
  throw CastException(value, 'User');
});

Implementation

void register<T>(T Function(dynamic value, {T Function()? orElse}) casterFn) {
  _casters[T] = casterFn;
}