Sha256: ea3f2c1c7ce0a48604f85503781f366baffaae14e889147cc5f1aa3194c8e82b
Contents?: true
Size: 580 Bytes
Versions: 4
Compression:
Stored size: 580 Bytes
Contents
# typed: strict module Typed module Coercion extend T::Sig sig { params(coercer: T.class_of(Coercer)).void } def self.register_coercer(coercer) CoercerRegistry.instance.register(coercer) end sig { type_parameters(:U).params(field: Field, value: Value).returns(Result[Value, CoercionError]) } def self.coerce(field:, value:) coercer = CoercerRegistry.instance.select_coercer_by(type: field.type) return Failure.new(CoercionNotSupportedError.new) unless coercer coercer.new.coerce(field: field, value: value) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sorbet-schema-0.3.0 | lib/typed/coercion.rb |
sorbet-schema-0.2.2 | lib/typed/coercion.rb |
sorbet-schema-0.2.1 | lib/typed/coercion.rb |
sorbet-schema-0.2.0 | lib/typed/coercion.rb |