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.
-
#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
405
406
407
|
# File 'lib/mangrove/result.rb', line 405
def initialize(inner)
@inner = inner
end
|
Instance Method Details
#==(other) ⇒ Boolean
410
411
412
413
414
415
416
417
418
419
420
|
# File 'lib/mangrove/result.rb', line 410
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]
512
513
514
|
# File 'lib/mangrove/result.rb', line 512
def and(_other)
self
end
|
#and_err_if(_new_err_inner, &_condition) ⇒ Result[OkType, ErrType]
538
539
540
|
# File 'lib/mangrove/result.rb', line 538
def and_err_if(_new_err_inner, &_condition)
self
end
|
#and_then(&_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
517
518
519
|
# File 'lib/mangrove/result.rb', line 517
def and_then(&_block)
self
end
|
#and_then_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
523
524
525
|
# File 'lib/mangrove/result.rb', line 523
def and_then_wt(_t_new_ok, &_block)
self
end
|
#err? ⇒ Boolean
Deprecated.
Use #is_a?(Result::Err) instead to enable Sorbet to define types statically.
468
|
# File 'lib/mangrove/result.rb', line 468
def err? = true
|
423
424
425
|
# File 'lib/mangrove/result.rb', line 423
def err_inner
@inner
end
|
#expect!(message) ⇒ OkType
453
454
455
|
# File 'lib/mangrove/result.rb', line 453
def expect!(message)
raise Result::ControlSignal, message
end
|
#expect_with!(&block) ⇒ OkType
458
459
460
|
# File 'lib/mangrove/result.rb', line 458
def expect_with!(&block)
raise Result::ControlSignal, block.call(@inner)
end
|
#map(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
471
472
473
|
# File 'lib/mangrove/result.rb', line 471
def map(&block)
block.call(self)
end
|
#map_err(&block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
491
492
493
|
# File 'lib/mangrove/result.rb', line 491
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)]
496
497
498
|
# File 'lib/mangrove/result.rb', line 496
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]
481
482
483
|
# File 'lib/mangrove/result.rb', line 481
def map_ok(&_block)
self
end
|
#map_ok_wt(_t_new_ok, &_block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
486
487
488
|
# File 'lib/mangrove/result.rb', line 486
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)]
476
477
478
|
# File 'lib/mangrove/result.rb', line 476
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.
464
|
# File 'lib/mangrove/result.rb', line 464
def ok? = false
|
#or(other) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
543
544
545
|
# File 'lib/mangrove/result.rb', line 543
def or(other)
other
end
|
#or_else(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
548
549
550
|
# File 'lib/mangrove/result.rb', line 548
def or_else(&block)
block.call(@inner)
end
|
#or_else_wt(_t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
553
554
555
|
# File 'lib/mangrove/result.rb', line 553
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]
568
569
570
571
572
573
574
|
# File 'lib/mangrove/result.rb', line 568
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
|
506
507
508
509
|
# File 'lib/mangrove/result.rb', line 506
def tap_err(&block)
block.call(@inner)
self
end
|
501
502
503
|
# File 'lib/mangrove/result.rb', line 501
def tap_ok(&_block)
self
end
|
#to_s ⇒ String
577
578
579
|
# File 'lib/mangrove/result.rb', line 577
def to_s
"#{super}: inner=`#{@inner}`"
end
|
428
429
430
|
# File 'lib/mangrove/result.rb', line 428
def unwrap!
raise Result::ControlSignal, @inner
end
|
#unwrap_in(_ctx) ⇒ T.noreturn
448
449
450
|
# File 'lib/mangrove/result.rb', line 448
def unwrap_in(_ctx)
throw :__mangrove_result_collecting_context_return, self
end
|
#unwrap_or_raise!(exception) ⇒ OkType
433
434
435
|
# File 'lib/mangrove/result.rb', line 433
def unwrap_or_raise!(exception)
raise exception
end
|
#unwrap_or_raise_inner! ⇒ OkType
443
444
445
|
# File 'lib/mangrove/result.rb', line 443
def unwrap_or_raise_inner!
raise T.unsafe(@inner)
end
|
#unwrap_or_raise_with!(&block) ⇒ OkType
438
439
440
|
# File 'lib/mangrove/result.rb', line 438
def unwrap_or_raise_with!(&block)
raise block.call(@inner)
end
|