Sha256: 5d6a814f3808e1142cf4c064c92d67f11bd6af03f545ba0f6b53c4f7d5900259

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

module BCDD
  class Result
    VERSION: String
  end
end

class BCDD::Result
  attr_reader type: Symbol
  attr_reader value: untyped

  def initialize: (type: Symbol, value: untyped) -> void

  def success?: (?Symbol type) -> bool
  def failure?: (?Symbol type) -> bool

  def value_or: { () -> untyped } -> untyped

  def ==: (untyped) -> bool
  alias eql? ==

  def hash: -> Integer

  def inspect: -> String

  def on: (*Symbol) { (untyped, Symbol) -> void } -> BCDD::Result
  def on_success: (*Symbol) { (untyped, Symbol) -> void } -> BCDD::Result
  def on_failure: (*Symbol) { (untyped, Symbol) -> void } -> BCDD::Result

  def and_then: { (untyped) -> untyped } -> BCDD::Result

  alias data value
  alias data_or value_or
  alias on_type on

  private

  def expected_type?: (Array[Symbol]) -> bool
  def allowed_to_handle?: (Array[Symbol]) -> bool
end

class BCDD::Result
  class Failure < BCDD::Result
  end

  def self.Success: (Symbol type, untyped value) -> BCDD::Result::Success
end

class BCDD::Result
  class Success < BCDD::Result
  end

  def self.Failure: (Symbol type, untyped value) -> BCDD::Result::Failure
end

class BCDD::Result
  class Error < ::StandardError
    class NotImplemented < BCDD::Result::Error
    end

    class MissingTypeArgument < BCDD::Result::Error
    end

    class UnexpectedBlockOutcome < BCDD::Result::Error
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bcdd-result-0.1.0 sig/bcdd/result.rbs