class Typed::Builder::ConstrainedType

Attributes

base_type[R]
constraint[R]

Public Class Methods

new(base_type, &constraint) click to toggle source
# File lib/typed/builder.rb, line 145
def initialize(base_type, &constraint)
    @base_type = base_type
    @constraint = constraint
end

Public Instance Methods

process(value) click to toggle source
# File lib/typed/builder.rb, line 150
def process(value)
    result = base_type.process(value)
    return result unless result.ok

    error = constraint.call(result.value)
    return result unless error

    Result.failure { error }
end