Sha256: c2be2577db93fe7a224f820af178893f600b13d7975890e143dae3f22c2af611

Contents?: true

Size: 512 Bytes

Versions: 1

Compression:

Stored size: 512 Bytes

Contents

# frozen_string_literal: true

module Kind
  module Maybe
    class Typed
      include Wrappable

      def initialize(kind)
        @kind = kind
      end

      def new(arg)
        value = Result::Value.(arg)

        value.kind_of?(@kind) ? Maybe.some(value) : Maybe.none
      end

      alias_method :[], :new

      private

        def __call_before_expose_the_arg_in_a_block(arg)
          value = Result::Value.(arg)

          value.kind_of?(@kind) ? value : Maybe.none
        end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kind-4.0.0 lib/kind/maybe/typed.rb