wrapDecode<T> method

  1. @override
T wrapDecode<T>(
  1. dynamic value,
  2. T fn(
    1. dynamic value
    ),
  3. MapperContainer container
)
override

Implementation

@override
T wrapDecode<T>(
    value, T Function(dynamic value) fn, MapperContainer container) {
  if (!isLocked) {
    for (var e in checks.entries) {
      var isT = e.key.provideTo(<T>() => value is T);
      if (isT) {
        break;
      } else if (e.value(value)) {
        try {
          isLocked = true;
          return e.key
                  .provideTo<dynamic>(<T>() => container.fromValue<T>(value))
              as T;
        } finally {
          isLocked = false;
        }
      }
    }
  }
  return fn(value);
}