parse<T> static method
Implementation
static PaywallState<T>? parse<T>(
Object? source,
T? Function(Object? source) callback, {
T? Function(T? value)? resolveWith,
}) {
T? resolve(T? value) {
if (value == null || resolveWith == null) return value;
return resolveWith(value);
}
if (source is Map &&
source.keys.any((e) => ['primary', 'secondary'].contains(e))) {
final x = PaywallState(
primary: resolve(callback(source['primary'])),
secondary: resolve(callback(source['secondary'])),
);
return x.primary == null && x._secondary == null ? null : x;
}
final x = resolve(callback(source));
if (x == null) return null;
return PaywallState.all(x);
}