validateRuntimeWithContext method

  1. @override
  2. @protected
SchemaResult<String> validateRuntimeWithContext(
  1. Object? value,
  2. SchemaContext context
)
override

Validates that value is a valid runtime value for this schema.

This is the single source of truth for runtime invariants. Subclasses MUST implement it; codecs call it on their output to validate decoded / pre-encode runtime values, and encodeWithContext uses it as a precondition.

Implementation

@override
@protected
SchemaResult<String> validateRuntimeWithContext(
  Object? value,
  SchemaContext context,
) {
  final nullResult = handleNullInput(value, context);
  if (nullResult != null) return nullResult;

  if (value is! String) {
    return SchemaResult.fail(
      _buildTypeMismatch(
        expectedType: schemaType,
        actualValue: value,
        context: context,
      ),
    );
  }

  return applyConstraintsAndRefinements(value, context);
}