Sha256: 372a9e198dc1791e047766ab58841217ac50408c6d157f19420ef8e0638f29c7
Contents?: true
Size: 576 Bytes
Versions: 1
Compression:
Stored size: 576 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(type: Field::Type, value: Value).returns(Result[Value, CoercionError]) } def self.coerce(type:, value:) coercer = CoercerRegistry.instance.select_coercer_by(type: type) return Failure.new(CoercionNotSupportedError.new) unless coercer coercer.new.coerce(type: type, value: value) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sorbet-schema-0.4.0 | lib/typed/coercion.rb |