Sha256: e8850516c700dd930fbcd9066e00a9168103831dc4f61bb1f6014cab73c47db7
Contents?: true
Size: 570 Bytes
Versions: 6
Compression:
Stored size: 570 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: T::Types::Base, value: Value).returns(Result[Value, CoercionError]) } def self.coerce(type:, value:) coercer = CoercerRegistry.instance.select_coercer_by(type:) return Failure.new(CoercionNotSupportedError.new(type:)) unless coercer coercer.new.coerce(type:, value:) end end end
Version data entries
6 entries across 6 versions & 1 rubygems