Class: Mangrove::Result::Ok
- Inherits:
-
Object
- Object
- Mangrove::Result::Ok
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
- ErrType =
type_member { { fixed: T.noreturn } }
Instance Method Summary
collapse
-
#==(other) ⇒ Boolean
-
#and(other) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#and_err_if(new_err_inner, &condition) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#and_then(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
-
#and_then_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
deprecated
Deprecated.
-
#err? ⇒ Boolean
deprecated
Deprecated.
Use #is_a?(Result::Err) instead to enable Sorbet to define types statically.
-
#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)]
Because sorbet does not deduct types from return values well.
-
#map_ok(&block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#map_ok_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
Because sorbet does not deduct types from return values well.
-
#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.
-
#ok_inner ⇒ OkType
-
#or(_other) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#or_else(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#or_else_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
deprecated
Deprecated.
-
#or_ok_if(_new_ok_inner, &_condition) ⇒ Result[OkType, ErrType]
-
#tap_err(&_block) ⇒ Result[OkType, ErrType]
-
#tap_ok(&block) ⇒ Result[OkType, ErrType]
-
#to_s ⇒ String
-
#unwrap! ⇒ OkType
-
#unwrap_in(_ctx) ⇒ OkType
-
#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
214
215
216
|
# File 'lib/mangrove/result.rb', line 214
def initialize(inner)
@inner = inner
end
|
Instance Method Details
#==(other) ⇒ Boolean
219
220
221
222
223
224
225
226
227
228
229
|
# File 'lib/mangrove/result.rb', line 219
def ==(other)
case other
when Result::Ok
other.instance_variable_get(:@inner) == @inner
when Result::Err
false
else false
end
end
|
#and(other) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
323
324
325
|
# File 'lib/mangrove/result.rb', line 323
def and(other)
other
end
|
#and_err_if(new_err_inner, &condition) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
349
350
351
352
353
354
355
|
# File 'lib/mangrove/result.rb', line 349
def and_err_if(new_err_inner, &condition)
if condition.call(@inner)
Result::Err[T.type_parameter(:NewErrType)].new(new_err_inner)
else
self
end
end
|
#and_then(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
328
329
330
|
# File 'lib/mangrove/result.rb', line 328
def and_then(&block)
block.call(@inner)
end
|
#and_then_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
334
335
336
|
# File 'lib/mangrove/result.rb', line 334
def and_then_wt(_t_new_ok, &block)
block.call(@inner)
end
|
#err? ⇒ Boolean
Deprecated.
Use #is_a?(Result::Err) instead to enable Sorbet to define types statically.
277
|
# File 'lib/mangrove/result.rb', line 277
def err? = false
|
#expect!(_message) ⇒ OkType
262
263
264
|
# File 'lib/mangrove/result.rb', line 262
def expect!(_message)
@inner
end
|
#expect_with!(&_block) ⇒ OkType
267
268
269
|
# File 'lib/mangrove/result.rb', line 267
def expect_with!(&_block)
@inner
end
|
#map(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
280
281
282
|
# File 'lib/mangrove/result.rb', line 280
def map(&block)
block.call(self)
end
|
#map_err(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
301
302
303
|
# File 'lib/mangrove/result.rb', line 301
def map_err(&_block)
self
end
|
#map_err_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
Because sorbet does not deduct types from return values well. This method takes a type of new inner values.
307
308
309
|
# File 'lib/mangrove/result.rb', line 307
def map_err_wt(_t_new_err, &_block)
self
end
|
#map_ok(&block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
290
291
292
|
# File 'lib/mangrove/result.rb', line 290
def map_ok(&block)
Result::Ok[T.type_parameter(:NewOkType)].new(block.call(@inner))
end
|
#map_ok_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
Because sorbet does not deduct types from return values well. This method takes a type of new inner values.
296
297
298
|
# File 'lib/mangrove/result.rb', line 296
def map_ok_wt(_t_new_ok, &block)
Result::Ok[T.type_parameter(:NewOkType)].new(block.call(@inner))
end
|
#map_wt(_t_new_ok, _t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
285
286
287
|
# File 'lib/mangrove/result.rb', line 285
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.
273
|
# File 'lib/mangrove/result.rb', line 273
def ok? = true
|
232
233
234
|
# File 'lib/mangrove/result.rb', line 232
def ok_inner
@inner
end
|
#or(_other) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
358
359
360
|
# File 'lib/mangrove/result.rb', line 358
def or(_other)
self
end
|
#or_else(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
363
364
365
|
# File 'lib/mangrove/result.rb', line 363
def or_else(&_block)
self
end
|
#or_else_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
369
370
371
|
# File 'lib/mangrove/result.rb', line 369
def or_else_wt(_t_new_err, &_block)
self
end
|
#or_ok_if(_new_ok_inner, &_condition) ⇒ Result[OkType, ErrType]
384
385
386
|
# File 'lib/mangrove/result.rb', line 384
def or_ok_if(_new_ok_inner, &_condition)
self
end
|
318
319
320
|
# File 'lib/mangrove/result.rb', line 318
def tap_err(&_block)
self
end
|
312
313
314
315
|
# File 'lib/mangrove/result.rb', line 312
def tap_ok(&block)
block.call(@inner)
self
end
|
#to_s ⇒ String
389
390
391
|
# File 'lib/mangrove/result.rb', line 389
def to_s
"#{super}: inner=`#{@inner}`"
end
|
237
238
239
|
# File 'lib/mangrove/result.rb', line 237
def unwrap!
@inner
end
|
#unwrap_in(_ctx) ⇒ OkType
257
258
259
|
# File 'lib/mangrove/result.rb', line 257
def unwrap_in(_ctx)
@inner
end
|
#unwrap_or_raise!(_exception) ⇒ OkType
242
243
244
|
# File 'lib/mangrove/result.rb', line 242
def unwrap_or_raise!(_exception)
@inner
end
|
#unwrap_or_raise_inner! ⇒ OkType
252
253
254
|
# File 'lib/mangrove/result.rb', line 252
def unwrap_or_raise_inner!
@inner
end
|
#unwrap_or_raise_with!(&_block) ⇒ OkType
247
248
249
|
# File 'lib/mangrove/result.rb', line 247
def unwrap_or_raise_with!(&_block)
@inner
end
|