mangrove 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/docs/Mangrove.html CHANGED
@@ -118,7 +118,7 @@
118
118
  <dt id="VERSION-constant" class="">VERSION =
119
119
 
120
120
  </dt>
121
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.12.0</span><span class='tstring_end'>&quot;</span></span></pre></dd>
121
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.14.0</span><span class='tstring_end'>&quot;</span></span></pre></dd>
122
122
 
123
123
  </dl>
124
124
 
@@ -134,7 +134,7 @@
134
134
  </div>
135
135
 
136
136
  <div id="footer">
137
- Generated on Tue Oct 24 20:44:48 2023 by
137
+ Generated on Thu Oct 26 12:34:21 2023 by
138
138
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
139
139
  0.9.34 (ruby-3.1.2).
140
140
  </div>
data/docs/_index.html CHANGED
@@ -215,7 +215,7 @@
215
215
  </div>
216
216
 
217
217
  <div id="footer">
218
- Generated on Tue Oct 24 20:44:47 2023 by
218
+ Generated on Thu Oct 26 12:34:21 2023 by
219
219
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
220
  0.9.34 (ruby-3.1.2).
221
221
  </div>
@@ -162,7 +162,7 @@ rake release
162
162
  </div></div>
163
163
 
164
164
  <div id="footer">
165
- Generated on Tue Oct 24 20:44:48 2023 by
165
+ Generated on Thu Oct 26 12:34:21 2023 by
166
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
167
  0.9.34 (ruby-3.1.2).
168
168
  </div>
data/docs/index.html CHANGED
@@ -162,7 +162,7 @@ rake release
162
162
  </div></div>
163
163
 
164
164
  <div id="footer">
165
- Generated on Tue Oct 24 20:44:48 2023 by
165
+ Generated on Thu Oct 26 12:34:21 2023 by
166
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
167
  0.9.34 (ruby-3.1.2).
168
168
  </div>
@@ -108,6 +108,86 @@
108
108
  </li>
109
109
 
110
110
 
111
+ <li class="odd ">
112
+ <div class="item">
113
+ <span class='object_link'><a href="Mangrove/Result.html#and-instance_method" title="Mangrove::Result#and (method)">#and</a></span>
114
+ <small>Mangrove::Result</small>
115
+ </div>
116
+ </li>
117
+
118
+
119
+ <li class="even ">
120
+ <div class="item">
121
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#and-instance_method" title="Mangrove::Result::Ok#and (method)">#and</a></span>
122
+ <small>Mangrove::Result::Ok</small>
123
+ </div>
124
+ </li>
125
+
126
+
127
+ <li class="odd ">
128
+ <div class="item">
129
+ <span class='object_link'><a href="Mangrove/Result/Err.html#and-instance_method" title="Mangrove::Result::Err#and (method)">#and</a></span>
130
+ <small>Mangrove::Result::Err</small>
131
+ </div>
132
+ </li>
133
+
134
+
135
+ <li class="even ">
136
+ <div class="item">
137
+ <span class='object_link'><a href="Mangrove/Result.html#and_then-instance_method" title="Mangrove::Result#and_then (method)">#and_then</a></span>
138
+ <small>Mangrove::Result</small>
139
+ </div>
140
+ </li>
141
+
142
+
143
+ <li class="odd ">
144
+ <div class="item">
145
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#and_then-instance_method" title="Mangrove::Result::Ok#and_then (method)">#and_then</a></span>
146
+ <small>Mangrove::Result::Ok</small>
147
+ </div>
148
+ </li>
149
+
150
+
151
+ <li class="even ">
152
+ <div class="item">
153
+ <span class='object_link'><a href="Mangrove/Result/Err.html#and_then-instance_method" title="Mangrove::Result::Err#and_then (method)">#and_then</a></span>
154
+ <small>Mangrove::Result::Err</small>
155
+ </div>
156
+ </li>
157
+
158
+
159
+ <li class="odd ">
160
+ <div class="item">
161
+ <span class='object_link'><a href="Mangrove/Result.html#and_then_wt-instance_method" title="Mangrove::Result#and_then_wt (method)">#and_then_wt</a></span>
162
+ <small>Mangrove::Result</small>
163
+ </div>
164
+ </li>
165
+
166
+
167
+ <li class="even ">
168
+ <div class="item">
169
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#and_then_wt-instance_method" title="Mangrove::Result::Ok#and_then_wt (method)">#and_then_wt</a></span>
170
+ <small>Mangrove::Result::Ok</small>
171
+ </div>
172
+ </li>
173
+
174
+
175
+ <li class="odd ">
176
+ <div class="item">
177
+ <span class='object_link'><a href="Mangrove/Result/Err.html#and_then_wt-instance_method" title="Mangrove::Result::Err#and_then_wt (method)">#and_then_wt</a></span>
178
+ <small>Mangrove::Result::Err</small>
179
+ </div>
180
+ </li>
181
+
182
+
183
+ <li class="even ">
184
+ <div class="item">
185
+ <span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span>
186
+ <small>Mangrove::Result</small>
187
+ </div>
188
+ </li>
189
+
190
+
111
191
  <li class="odd ">
112
192
  <div class="item">
113
193
  <span class='object_link'><a href="Mangrove/Result.html#err%3F-instance_method" title="Mangrove::Result#err? (method)">#err?</a></span>
@@ -342,7 +422,7 @@
342
422
 
343
423
  <li class="even ">
344
424
  <div class="item">
345
- <span class='object_link'><a href="Mangrove/Result.html#map_err-instance_method" title="Mangrove::Result#map_err (method)">#map_err</a></span>
425
+ <span class='object_link'><a href="Mangrove/Result.html#map-instance_method" title="Mangrove::Result#map (method)">#map</a></span>
346
426
  <small>Mangrove::Result</small>
347
427
  </div>
348
428
  </li>
@@ -350,13 +430,37 @@
350
430
 
351
431
  <li class="odd ">
352
432
  <div class="item">
353
- <span class='object_link'><a href="Mangrove/Result/Ok.html#map_err-instance_method" title="Mangrove::Result::Ok#map_err (method)">#map_err</a></span>
433
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#map-instance_method" title="Mangrove::Result::Ok#map (method)">#map</a></span>
354
434
  <small>Mangrove::Result::Ok</small>
355
435
  </div>
356
436
  </li>
357
437
 
358
438
 
359
439
  <li class="even ">
440
+ <div class="item">
441
+ <span class='object_link'><a href="Mangrove/Result/Err.html#map-instance_method" title="Mangrove::Result::Err#map (method)">#map</a></span>
442
+ <small>Mangrove::Result::Err</small>
443
+ </div>
444
+ </li>
445
+
446
+
447
+ <li class="odd ">
448
+ <div class="item">
449
+ <span class='object_link'><a href="Mangrove/Result.html#map_err-instance_method" title="Mangrove::Result#map_err (method)">#map_err</a></span>
450
+ <small>Mangrove::Result</small>
451
+ </div>
452
+ </li>
453
+
454
+
455
+ <li class="even ">
456
+ <div class="item">
457
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#map_err-instance_method" title="Mangrove::Result::Ok#map_err (method)">#map_err</a></span>
458
+ <small>Mangrove::Result::Ok</small>
459
+ </div>
460
+ </li>
461
+
462
+
463
+ <li class="odd ">
360
464
  <div class="item">
361
465
  <span class='object_link'><a href="Mangrove/Result/Err.html#map_err-instance_method" title="Mangrove::Result::Err#map_err (method)">#map_err</a></span>
362
466
  <small>Mangrove::Result::Err</small>
@@ -364,6 +468,30 @@
364
468
  </li>
365
469
 
366
470
 
471
+ <li class="even ">
472
+ <div class="item">
473
+ <span class='object_link'><a href="Mangrove/Result.html#map_err_wt-instance_method" title="Mangrove::Result#map_err_wt (method)">#map_err_wt</a></span>
474
+ <small>Mangrove::Result</small>
475
+ </div>
476
+ </li>
477
+
478
+
479
+ <li class="odd ">
480
+ <div class="item">
481
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#map_err_wt-instance_method" title="Mangrove::Result::Ok#map_err_wt (method)">#map_err_wt</a></span>
482
+ <small>Mangrove::Result::Ok</small>
483
+ </div>
484
+ </li>
485
+
486
+
487
+ <li class="even ">
488
+ <div class="item">
489
+ <span class='object_link'><a href="Mangrove/Result/Err.html#map_err_wt-instance_method" title="Mangrove::Result::Err#map_err_wt (method)">#map_err_wt</a></span>
490
+ <small>Mangrove::Result::Err</small>
491
+ </div>
492
+ </li>
493
+
494
+
367
495
  <li class="odd ">
368
496
  <div class="item">
369
497
  <span class='object_link'><a href="Mangrove/Result.html#map_ok-instance_method" title="Mangrove::Result#map_ok (method)">#map_ok</a></span>
@@ -388,6 +516,54 @@
388
516
  </li>
389
517
 
390
518
 
519
+ <li class="even ">
520
+ <div class="item">
521
+ <span class='object_link'><a href="Mangrove/Result.html#map_ok_wt-instance_method" title="Mangrove::Result#map_ok_wt (method)">#map_ok_wt</a></span>
522
+ <small>Mangrove::Result</small>
523
+ </div>
524
+ </li>
525
+
526
+
527
+ <li class="odd ">
528
+ <div class="item">
529
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#map_ok_wt-instance_method" title="Mangrove::Result::Ok#map_ok_wt (method)">#map_ok_wt</a></span>
530
+ <small>Mangrove::Result::Ok</small>
531
+ </div>
532
+ </li>
533
+
534
+
535
+ <li class="even ">
536
+ <div class="item">
537
+ <span class='object_link'><a href="Mangrove/Result/Err.html#map_ok_wt-instance_method" title="Mangrove::Result::Err#map_ok_wt (method)">#map_ok_wt</a></span>
538
+ <small>Mangrove::Result::Err</small>
539
+ </div>
540
+ </li>
541
+
542
+
543
+ <li class="odd ">
544
+ <div class="item">
545
+ <span class='object_link'><a href="Mangrove/Result.html#map_wt-instance_method" title="Mangrove::Result#map_wt (method)">#map_wt</a></span>
546
+ <small>Mangrove::Result</small>
547
+ </div>
548
+ </li>
549
+
550
+
551
+ <li class="even ">
552
+ <div class="item">
553
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#map_wt-instance_method" title="Mangrove::Result::Ok#map_wt (method)">#map_wt</a></span>
554
+ <small>Mangrove::Result::Ok</small>
555
+ </div>
556
+ </li>
557
+
558
+
559
+ <li class="odd ">
560
+ <div class="item">
561
+ <span class='object_link'><a href="Mangrove/Result/Err.html#map_wt-instance_method" title="Mangrove::Result::Err#map_wt (method)">#map_wt</a></span>
562
+ <small>Mangrove::Result::Err</small>
563
+ </div>
564
+ </li>
565
+
566
+
391
567
  <li class="even ">
392
568
  <div class="item">
393
569
  <span class='object_link'><a href="Mangrove/Option/Some.html#none%3F-instance_method" title="Mangrove::Option::Some#none? (method)">#none?</a></span>
@@ -414,13 +590,21 @@
414
590
 
415
591
  <li class="odd ">
416
592
  <div class="item">
417
- <span class='object_link'><a href="Mangrove/Result.html#ok%3F-instance_method" title="Mangrove::Result#ok? (method)">#ok?</a></span>
593
+ <span class='object_link'><a href="Mangrove/Result.html#ok-class_method" title="Mangrove::Result.ok (method)">ok</a></span>
418
594
  <small>Mangrove::Result</small>
419
595
  </div>
420
596
  </li>
421
597
 
422
598
 
423
599
  <li class="even ">
600
+ <div class="item">
601
+ <span class='object_link'><a href="Mangrove/Result.html#ok%3F-instance_method" title="Mangrove::Result#ok? (method)">#ok?</a></span>
602
+ <small>Mangrove::Result</small>
603
+ </div>
604
+ </li>
605
+
606
+
607
+ <li class="odd ">
424
608
  <div class="item">
425
609
  <span class='object_link'><a href="Mangrove/Result/Ok.html#ok%3F-instance_method" title="Mangrove::Result::Ok#ok? (method)">#ok?</a></span>
426
610
  <small>Mangrove::Result::Ok</small>
@@ -428,7 +612,7 @@
428
612
  </li>
429
613
 
430
614
 
431
- <li class="odd ">
615
+ <li class="even ">
432
616
  <div class="item">
433
617
  <span class='object_link'><a href="Mangrove/Result/Err.html#ok%3F-instance_method" title="Mangrove::Result::Err#ok? (method)">#ok?</a></span>
434
618
  <small>Mangrove::Result::Err</small>
@@ -436,7 +620,7 @@
436
620
  </li>
437
621
 
438
622
 
439
- <li class="even ">
623
+ <li class="odd ">
440
624
  <div class="item">
441
625
  <span class='object_link'><a href="Mangrove/Result/Ok.html#ok_inner-instance_method" title="Mangrove::Result::Ok#ok_inner (method)">#ok_inner</a></span>
442
626
  <small>Mangrove::Result::Ok</small>
@@ -444,7 +628,7 @@
444
628
  </li>
445
629
 
446
630
 
447
- <li class="odd ">
631
+ <li class="even ">
448
632
  <div class="item">
449
633
  <span class='object_link'><a href="Mangrove/Option/Some.html#or-instance_method" title="Mangrove::Option::Some#or (method)">#or</a></span>
450
634
  <small>Mangrove::Option::Some</small>
@@ -452,7 +636,7 @@
452
636
  </li>
453
637
 
454
638
 
455
- <li class="even ">
639
+ <li class="odd ">
456
640
  <div class="item">
457
641
  <span class='object_link'><a href="Mangrove/Option/None.html#or-instance_method" title="Mangrove::Option::None#or (method)">#or</a></span>
458
642
  <small>Mangrove::Option::None</small>
@@ -460,7 +644,7 @@
460
644
  </li>
461
645
 
462
646
 
463
- <li class="odd ">
647
+ <li class="even ">
464
648
  <div class="item">
465
649
  <span class='object_link'><a href="Mangrove/Option.html#or-instance_method" title="Mangrove::Option#or (method)">#or</a></span>
466
650
  <small>Mangrove::Option</small>
@@ -468,6 +652,78 @@
468
652
  </li>
469
653
 
470
654
 
655
+ <li class="odd ">
656
+ <div class="item">
657
+ <span class='object_link'><a href="Mangrove/Result.html#or-instance_method" title="Mangrove::Result#or (method)">#or</a></span>
658
+ <small>Mangrove::Result</small>
659
+ </div>
660
+ </li>
661
+
662
+
663
+ <li class="even ">
664
+ <div class="item">
665
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#or-instance_method" title="Mangrove::Result::Ok#or (method)">#or</a></span>
666
+ <small>Mangrove::Result::Ok</small>
667
+ </div>
668
+ </li>
669
+
670
+
671
+ <li class="odd ">
672
+ <div class="item">
673
+ <span class='object_link'><a href="Mangrove/Result/Err.html#or-instance_method" title="Mangrove::Result::Err#or (method)">#or</a></span>
674
+ <small>Mangrove::Result::Err</small>
675
+ </div>
676
+ </li>
677
+
678
+
679
+ <li class="even ">
680
+ <div class="item">
681
+ <span class='object_link'><a href="Mangrove/Result.html#or_else-instance_method" title="Mangrove::Result#or_else (method)">#or_else</a></span>
682
+ <small>Mangrove::Result</small>
683
+ </div>
684
+ </li>
685
+
686
+
687
+ <li class="odd ">
688
+ <div class="item">
689
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#or_else-instance_method" title="Mangrove::Result::Ok#or_else (method)">#or_else</a></span>
690
+ <small>Mangrove::Result::Ok</small>
691
+ </div>
692
+ </li>
693
+
694
+
695
+ <li class="even ">
696
+ <div class="item">
697
+ <span class='object_link'><a href="Mangrove/Result/Err.html#or_else-instance_method" title="Mangrove::Result::Err#or_else (method)">#or_else</a></span>
698
+ <small>Mangrove::Result::Err</small>
699
+ </div>
700
+ </li>
701
+
702
+
703
+ <li class="odd ">
704
+ <div class="item">
705
+ <span class='object_link'><a href="Mangrove/Result.html#or_else_wt-instance_method" title="Mangrove::Result#or_else_wt (method)">#or_else_wt</a></span>
706
+ <small>Mangrove::Result</small>
707
+ </div>
708
+ </li>
709
+
710
+
711
+ <li class="even ">
712
+ <div class="item">
713
+ <span class='object_link'><a href="Mangrove/Result/Ok.html#or_else_wt-instance_method" title="Mangrove::Result::Ok#or_else_wt (method)">#or_else_wt</a></span>
714
+ <small>Mangrove::Result::Ok</small>
715
+ </div>
716
+ </li>
717
+
718
+
719
+ <li class="odd ">
720
+ <div class="item">
721
+ <span class='object_link'><a href="Mangrove/Result/Err.html#or_else_wt-instance_method" title="Mangrove::Result::Err#or_else_wt (method)">#or_else_wt</a></span>
722
+ <small>Mangrove::Result::Err</small>
723
+ </div>
724
+ </li>
725
+
726
+
471
727
  <li class="even ">
472
728
  <div class="item">
473
729
  <span class='object_link'><a href="Mangrove/Option/Some.html#some%3F-instance_method" title="Mangrove::Option::Some#some? (method)">#some?</a></span>
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Tue Oct 24 20:44:48 2023 by
103
+ Generated on Thu Oct 26 12:34:21 2023 by
104
104
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
105
  0.9.34 (ruby-3.1.2).
106
106
  </div>
@@ -36,12 +36,42 @@ module Mangrove
36
36
  sig { abstract.params(block: T.proc.returns(T.untyped)).returns(OkType) }
37
37
  def expect_with!(&block); end
38
38
 
39
- sig { abstract.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
39
+ sig { abstract.type_parameters(:NewOkType, :NewErrType).params(block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
40
+ def map(&block); end
41
+
42
+ sig { abstract.type_parameters(:NewOkType, :NewErrType).params(_t_new_ok: T.type_parameter(:NewOkType), _t_new_err: T.type_parameter(:NewErrType), block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
43
+ def map_wt(_t_new_ok, _t_new_err, &block); end
44
+
45
+ sig { abstract.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
40
46
  def map_ok(&block); end
41
47
 
42
- sig { abstract.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
48
+ sig { abstract.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
49
+ def map_ok_wt(_t_new_ok, &block); end
50
+
51
+ sig { abstract.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
43
52
  def map_err(&block); end
44
53
 
54
+ sig { abstract.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
55
+ def map_err_wt(_t_new_err, &block); end
56
+
57
+ sig { abstract.type_parameters(:NewOkType).params(other: Result[T.type_parameter(:NewOkType), ErrType]).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
58
+ def and(other); end
59
+
60
+ sig { abstract.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
61
+ def and_then(&block); end
62
+
63
+ sig { abstract.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
64
+ def and_then_wt(_t_new_ok, &block); end
65
+
66
+ sig { abstract.params(other: Result[OkType, ErrType]).returns(Result[OkType, ErrType]) }
67
+ def or(other); end
68
+
69
+ sig { abstract.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
70
+ def or_else(&block); end
71
+
72
+ sig { abstract.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
73
+ def or_else_wt(_t_new_err, &block); end
74
+
45
75
  class << self
46
76
  extend T::Sig
47
77
  extend T::Generic
@@ -61,6 +91,16 @@ module Mangrove
61
91
  Result::Err.new(errs.map { |r| T.cast(r, Result::Err[OkType, ErrType]).err_inner })
62
92
  end
63
93
  end
94
+
95
+ sig { params(inner: OkType).returns(Result::Ok[OkType, ErrType]) }
96
+ def ok(inner)
97
+ Result::Ok[OkType, ErrType].new(inner)
98
+ end
99
+
100
+ sig { params(inner: ErrType).returns(Result::Err[OkType, ErrType]) }
101
+ def err(inner)
102
+ Result::Err[OkType, ErrType].new(inner)
103
+ end
64
104
  end
65
105
 
66
106
  class Ok
@@ -116,13 +156,65 @@ module Mangrove
116
156
  sig { override.returns(T::Boolean) }
117
157
  def err? = false
118
158
 
119
- sig { override.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
159
+ sig { override.type_parameters(:NewOkType, :NewErrType).params(block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
160
+ def map(&block)
161
+ block.call(self)
162
+ end
163
+
164
+ sig { override.type_parameters(:NewOkType, :NewErrType).params(_t_new_ok: T.type_parameter(:NewOkType), _t_new_err: T.type_parameter(:NewErrType), block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
165
+ def map_wt(_t_new_ok, _t_new_err, &block)
166
+ block.call(self)
167
+ end
168
+
169
+ sig { override.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
120
170
  def map_ok(&block)
171
+ Result::Ok[T.type_parameter(:NewOkType), ErrType].new(block.call(@inner))
172
+ end
173
+
174
+ # Because sorbet deduct types from return values well. This method takes a type of new inner values.
175
+ sig { override.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
176
+ def map_ok_wt(_t_new_ok, &block)
177
+ Result::Ok[T.type_parameter(:NewOkType), ErrType].new(block.call(@inner))
178
+ end
179
+
180
+ sig { override.type_parameters(:NewErrType).params(_block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
181
+ def map_err(&_block)
182
+ T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
183
+ end
184
+
185
+ # Because sorbet deduct types from return values well. This method takes a type of new inner values.
186
+ sig { override.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], _block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
187
+ def map_err_wt(_t_new_err, &_block)
188
+ T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
189
+ end
190
+
191
+ sig { override.type_parameters(:NewOkType).params(other: Result[T.type_parameter(:NewOkType), ErrType]).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
192
+ def and(other)
193
+ other
194
+ end
195
+
196
+ sig { override.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
197
+ def and_then(&block)
121
198
  block.call(@inner)
122
199
  end
123
200
 
201
+ sig { override.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
202
+ def and_then_wt(_t_new_ok, &block)
203
+ block.call(@inner)
204
+ end
205
+
206
+ sig { override.params(_other: Result[OkType, ErrType]).returns(Result[OkType, ErrType]) }
207
+ def or(_other)
208
+ self
209
+ end
210
+
124
211
  sig { override.type_parameters(:NewErrType).params(_block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
125
- def map_err(&_block)
212
+ def or_else(&_block)
213
+ T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
214
+ end
215
+
216
+ sig { override.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], _block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
217
+ def or_else_wt(_t_new_err, &_block)
126
218
  T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
127
219
  end
128
220
 
@@ -185,13 +277,64 @@ module Mangrove
185
277
  sig { override.returns(T::Boolean) }
186
278
  def err? = true
187
279
 
188
- sig { override.type_parameters(:NewOkType).params(_block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
280
+ sig { override.type_parameters(:NewOkType, :NewErrType).params(block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
281
+ def map(&block)
282
+ block.call(self)
283
+ end
284
+
285
+ sig { override.type_parameters(:NewOkType, :NewErrType).params(_t_new_ok: T.type_parameter(:NewOkType), _t_new_err: T.type_parameter(:NewErrType), block: T.proc.params(this: Result[OkType, ErrType]).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)])).returns(Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]) }
286
+ def map_wt(_t_new_ok, _t_new_err, &block)
287
+ block.call(self)
288
+ end
289
+
290
+ sig { override.type_parameters(:NewOkType).params(_block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
189
291
  def map_ok(&_block)
190
292
  T.cast(self, Result::Err[T.type_parameter(:NewOkType), ErrType])
191
293
  end
192
294
 
193
- sig { override.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
295
+ # Because sorbet deduct types from return values well. This method takes a type of new inner values.
296
+ sig { override.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], _block: T.proc.params(this: OkType).returns(T.type_parameter(:NewOkType))).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
297
+ def map_ok_wt(_t_new_ok, &_block)
298
+ T.cast(self, Result::Err[T.type_parameter(:NewOkType), ErrType])
299
+ end
300
+
301
+ sig { override.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
194
302
  def map_err(&block)
303
+ Result::Err[OkType, T.type_parameter(:NewErrType)].new(block.call(@inner))
304
+ end
305
+
306
+ sig { override.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
307
+ def map_err_wt(_t_new_err, &block)
308
+ Result::Err[OkType, T.type_parameter(:NewErrType)].new(block.call(@inner))
309
+ end
310
+
311
+ sig { override.type_parameters(:NewOkType).params(_other: Result[T.type_parameter(:NewOkType), ErrType]).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
312
+ def and(_other)
313
+ T.cast(self, Result::Err[T.type_parameter(:NewOkType), ErrType])
314
+ end
315
+
316
+ sig { override.type_parameters(:NewOkType).params(_block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
317
+ def and_then(&_block)
318
+ T.cast(self, Result::Err[T.type_parameter(:NewOkType), ErrType])
319
+ end
320
+
321
+ sig { override.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], _block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
322
+ def and_then_wt(_t_new_ok, &_block)
323
+ T.cast(self, Result::Err[T.type_parameter(:NewOkType), ErrType])
324
+ end
325
+
326
+ sig { override.params(other: Result[OkType, ErrType]).returns(Result[OkType, ErrType]) }
327
+ def or(other)
328
+ other
329
+ end
330
+
331
+ sig { override.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
332
+ def or_else(&block)
333
+ block.call(@inner)
334
+ end
335
+
336
+ sig { override.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
337
+ def or_else_wt(_t_new_err, &block)
195
338
  block.call(@inner)
196
339
  end
197
340
 
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Mangrove
5
- VERSION = "0.12.0"
5
+ VERSION = "0.14.0"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangrove
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuma Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-24 00:00:00.000000000 Z
11
+ date: 2023-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime