Method: Mona::DictResult::OK#set

Defined in:
lib/mona/dict_result/ok.rb

#set(key, val) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/mona/dict_result/ok.rb', line 9

def set(key, val)
  key, failure_key = key if key.is_a?(Array)
  failure_key ||= key

  # @type var meta: Hash[Symbol, untyped]
  Result[val].either \
    ->(value) { OK.new to_h.merge(key => value) },
    ->(failure, reason, **meta) { Err.new to_h.merge(failure_key => failure), reason, **meta, key: failure_key }
end