Sha256: 6bb935ea081cd72d2bdc748f048e97501daa5684c951f4cf395dbb5828ce8557

Contents?: true

Size: 797 Bytes

Versions: 2

Compression:

Stored size: 797 Bytes

Contents

# typed: strict
# frozen_string_literal: true

module Typed
  # Represents a failed result. Contains error information but no payload.
  class Failure < Result
    extend T::Sig
    extend T::Generic

    Payload = type_member
    Error = type_member

    sig { override.returns(T.nilable(Error)) }
    attr_reader :error

    sig { params(error: T.nilable(Error)).void }
    def initialize(error: nil)
      @error = error
      super()
    end

    sig { override.returns(T::Boolean) }
    def success?
      false
    end

    sig { override.returns(T::Boolean) }
    def failure?
      true
    end

    sig { override.returns(T.nilable(Payload)) }
    def payload
      nil
    end

    sig { override.returns(Payload) }
    def payload!
      raise NoPayloadOnFailureError
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sorbet-result-0.2.1 lib/typed/failure.rb
sorbet-result-0.2.0 lib/typed/failure.rb