Class: Mangrove::Result::Err
- Inherits:
-
Object
- Object
- Mangrove::Result::Err
show all
- Extended by:
- T::Generic, T::Helpers, T::Sig
- Includes:
- Mangrove::Result
- Defined in:
- lib/mangrove/result.rb
Constant Summary
collapse
- OkType =
type_member { { fixed: T.noreturn } }
- ErrType =
type_member
Instance Method Summary
collapse
-
#==(other) ⇒ Boolean
-
#and(_other) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#and_err_if(_new_err_inner, &_condition) ⇒ Result[OkType, ErrType]
-
#and_then(&_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#and_then_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
deprecated
Deprecated.
-
#deconstruct ⇒ Array<ErrType>
-
#deconstruct_keys(_keys) ⇒ Hash{Symbol => ErrType}
-
#err? ⇒ Boolean
deprecated
Deprecated.
Use #is_a?(Result::Err) instead to enable Sorbet to define types statically.
-
#err_inner ⇒ ErrType
-
#expect!(message) ⇒ OkType
-
#expect_with!(&block) ⇒ OkType
-
#initialize(inner) ⇒ void
constructor
-
#map(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#map_err(&block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#map_err_wt(_t_new_err, &block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#map_ok(&_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#map_ok_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#map_wt(_t_new_ok, _t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#ok? ⇒ Boolean
deprecated
Deprecated.
Use #is_a?(Result::Ok) instead to enable Sorbet to define types statically.
-
#or(other) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#or_else(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#or_else_wt(_t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#or_ok_if(new_ok_inner, &condition) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#tap_err(&block) ⇒ Result[OkType, ErrType]
-
#tap_ok(&_block) ⇒ Result[OkType, ErrType]
-
#to_s ⇒ String
-
#unwrap! ⇒ OkType
-
#unwrap_in(_ctx) ⇒ T.noreturn
-
#unwrap_or_raise!(exception) ⇒ OkType
-
#unwrap_or_raise_inner! ⇒ OkType
-
#unwrap_or_raise_with!(&block) ⇒ OkType
collecting, err, err_wt, from_results, ok, ok_wt
Constructor Details
#initialize(inner) ⇒ void
416
417
418
|
# File 'lib/mangrove/result.rb', line 416
def initialize(inner)
@inner = inner
end
|
Instance Method Details
#==(other) ⇒ Boolean
421
422
423
424
425
426
427
428
429
430
431
|
# File 'lib/mangrove/result.rb', line 421
def ==(other)
case other
when Result::Ok
false
when Result::Err
other.instance_variable_get(:@inner) == @inner
else false
end
end
|
#and(_other) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
523
524
525
|
# File 'lib/mangrove/result.rb', line 523
def and(_other)
self
end
|
#and_err_if(_new_err_inner, &_condition) ⇒ Result[OkType, ErrType]
549
550
551
|
# File 'lib/mangrove/result.rb', line 549
def and_err_if(_new_err_inner, &_condition)
self
end
|
#and_then(&_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
528
529
530
|
# File 'lib/mangrove/result.rb', line 528
def and_then(&_block)
self
end
|
#and_then_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
534
535
536
|
# File 'lib/mangrove/result.rb', line 534
def and_then_wt(_t_new_ok, &_block)
self
end
|
#deconstruct ⇒ Array<ErrType>
588
589
590
|
# File 'lib/mangrove/result.rb', line 588
def deconstruct
[@inner]
end
|
#deconstruct_keys(_keys) ⇒ Hash{Symbol => ErrType}
593
594
595
|
# File 'lib/mangrove/result.rb', line 593
def deconstruct_keys(_keys)
{ inner: @inner }
end
|
#err? ⇒ Boolean
Deprecated.
Use #is_a?(Result::Err) instead to enable Sorbet to define types statically.
479
|
# File 'lib/mangrove/result.rb', line 479
def err? = true
|
434
435
436
|
# File 'lib/mangrove/result.rb', line 434
def err_inner
@inner
end
|
#expect!(message) ⇒ OkType
464
465
466
|
# File 'lib/mangrove/result.rb', line 464
def expect!(message)
raise Result::ControlSignal, message
end
|
#expect_with!(&block) ⇒ OkType
469
470
471
|
# File 'lib/mangrove/result.rb', line 469
def expect_with!(&block)
raise Result::ControlSignal, block.call(@inner)
end
|
#map(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
482
483
484
|
# File 'lib/mangrove/result.rb', line 482
def map(&block)
block.call(self)
end
|
#map_err(&block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
502
503
504
|
# File 'lib/mangrove/result.rb', line 502
def map_err(&block)
Result::Err[T.type_parameter(:NewErrType)].new(block.call(@inner))
end
|
#map_err_wt(_t_new_err, &block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
507
508
509
|
# File 'lib/mangrove/result.rb', line 507
def map_err_wt(_t_new_err, &block)
Result::Err[T.type_parameter(:NewErrType)].new(block.call(@inner))
end
|
#map_ok(&_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
492
493
494
|
# File 'lib/mangrove/result.rb', line 492
def map_ok(&_block)
self
end
|
#map_ok_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
497
498
499
|
# File 'lib/mangrove/result.rb', line 497
def map_ok_wt(_t_new_ok, &_block)
self
end
|
#map_wt(_t_new_ok, _t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
487
488
489
|
# File 'lib/mangrove/result.rb', line 487
def map_wt(_t_new_ok, _t_new_err, &block)
block.call(self)
end
|
#ok? ⇒ Boolean
Deprecated.
Use #is_a?(Result::Ok) instead to enable Sorbet to define types statically.
475
|
# File 'lib/mangrove/result.rb', line 475
def ok? = false
|
#or(other) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
554
555
556
|
# File 'lib/mangrove/result.rb', line 554
def or(other)
other
end
|
#or_else(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
559
560
561
|
# File 'lib/mangrove/result.rb', line 559
def or_else(&block)
block.call(@inner)
end
|
#or_else_wt(_t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
564
565
566
|
# File 'lib/mangrove/result.rb', line 564
def or_else_wt(_t_new_err, &block)
block.call(@inner)
end
|
#or_ok_if(new_ok_inner, &condition) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
579
580
581
582
583
584
585
|
# File 'lib/mangrove/result.rb', line 579
def or_ok_if(new_ok_inner, &condition)
if condition.call(@inner)
Result::Ok[T.type_parameter(:NewOkType)].new(new_ok_inner)
else
self
end
end
|
517
518
519
520
|
# File 'lib/mangrove/result.rb', line 517
def tap_err(&block)
block.call(@inner)
self
end
|
512
513
514
|
# File 'lib/mangrove/result.rb', line 512
def tap_ok(&_block)
self
end
|
#to_s ⇒ String
598
599
600
|
# File 'lib/mangrove/result.rb', line 598
def to_s
"#{super}: inner=`#{@inner}`"
end
|
439
440
441
|
# File 'lib/mangrove/result.rb', line 439
def unwrap!
raise Result::ControlSignal, @inner
end
|
#unwrap_in(_ctx) ⇒ T.noreturn
459
460
461
|
# File 'lib/mangrove/result.rb', line 459
def unwrap_in(_ctx)
throw :__mangrove_result_collecting_context_return, self
end
|
#unwrap_or_raise!(exception) ⇒ OkType
444
445
446
|
# File 'lib/mangrove/result.rb', line 444
def unwrap_or_raise!(exception)
raise exception
end
|
#unwrap_or_raise_inner! ⇒ OkType
454
455
456
|
# File 'lib/mangrove/result.rb', line 454
def unwrap_or_raise_inner!
raise T.unsafe(@inner)
end
|
#unwrap_or_raise_with!(&block) ⇒ OkType
449
450
451
|
# File 'lib/mangrove/result.rb', line 449
def unwrap_or_raise_with!(&block)
raise block.call(@inner)
end
|