Sha256: 90c43aa02b5fba5416eb0a98d7019d416408173099ae31508709849537098922

Contents?: true

Size: 778 Bytes

Versions: 1

Compression:

Stored size: 778 Bytes

Contents

# typed: strict
# frozen_string_literal: true

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

    include Result

    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
    end

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

    sig { override.returns(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

1 entries across 1 versions & 1 rubygems

Version Path
sorbet-result-0.1.0 lib/t/failure.rb