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
Instance Method Summary
collapse
-
#==(other) ⇒ Boolean
-
#and(other) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#and_then(&block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#and_then_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
-
#err? ⇒ Boolean
-
#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 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 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
-
#ok_inner ⇒ OkType
-
#or(_other) ⇒ Result[OkType, ErrType]
-
#or_else(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#or_else_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
-
#to_s ⇒ String
-
#unwrap! ⇒ OkType
-
#unwrap_or_raise!(_exception) ⇒ OkType
-
#unwrap_or_raise_inner! ⇒ OkType
err, err_wt, from_results, ok, ok_wt
Constructor Details
#initialize(inner) ⇒ void
133
134
135
|
# File 'lib/mangrove/result.rb', line 133
def initialize(inner)
@inner = inner
end
|
Instance Method Details
#==(other) ⇒ Boolean
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/mangrove/result.rb', line 138
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), ErrType]
219
220
221
|
# File 'lib/mangrove/result.rb', line 219
def and(other)
other
end
|
#and_then(&block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
224
225
226
|
# File 'lib/mangrove/result.rb', line 224
def and_then(&block)
block.call(@inner)
end
|
#and_then_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
229
230
231
|
# File 'lib/mangrove/result.rb', line 229
def and_then_wt(_t_new_ok, &block)
block.call(@inner)
end
|
#err? ⇒ Boolean
184
|
# File 'lib/mangrove/result.rb', line 184
def err? = false
|
#expect!(_message) ⇒ OkType
171
172
173
|
# File 'lib/mangrove/result.rb', line 171
def expect!(_message)
@inner
end
|
#expect_with!(&_block) ⇒ OkType
176
177
178
|
# File 'lib/mangrove/result.rb', line 176
def expect_with!(&_block)
@inner
end
|
#map(&block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
187
188
189
|
# File 'lib/mangrove/result.rb', line 187
def map(&block)
block.call(self)
end
|
#map_err(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
208
209
210
|
# File 'lib/mangrove/result.rb', line 208
def map_err(&_block)
T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
end
|
#map_err_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
Because sorbet deduct types from return values well. This method takes a type of new inner values.
214
215
216
|
# File 'lib/mangrove/result.rb', line 214
def map_err_wt(_t_new_err, &_block)
T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
end
|
#map_ok(&block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
197
198
199
|
# File 'lib/mangrove/result.rb', line 197
def map_ok(&block)
Result::Ok[T.type_parameter(:NewOkType), ErrType].new(block.call(@inner))
end
|
#map_ok_wt(_t_new_ok, &block) ⇒ Result[T.type_parameter(:NewOkType), ErrType]
Because sorbet deduct types from return values well. This method takes a type of new inner values.
203
204
205
|
# File 'lib/mangrove/result.rb', line 203
def map_ok_wt(_t_new_ok, &block)
Result::Ok[T.type_parameter(:NewOkType), ErrType].new(block.call(@inner))
end
|
#map_wt(_t_new_ok, _t_new_err, &block) ⇒ Result[T.type_parameter(:NewOkType), T.type_parameter(:NewErrType)]
192
193
194
|
# File 'lib/mangrove/result.rb', line 192
def map_wt(_t_new_ok, _t_new_err, &block)
block.call(self)
end
|
#ok? ⇒ Boolean
181
|
# File 'lib/mangrove/result.rb', line 181
def ok? = true
|
151
152
153
|
# File 'lib/mangrove/result.rb', line 151
def ok_inner
@inner
end
|
234
235
236
|
# File 'lib/mangrove/result.rb', line 234
def or(_other)
self
end
|
#or_else(&_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
239
240
241
|
# File 'lib/mangrove/result.rb', line 239
def or_else(&_block)
T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
end
|
#or_else_wt(_t_new_err, &_block) ⇒ Result[OkType, T.type_parameter(:NewErrType)]
244
245
246
|
# File 'lib/mangrove/result.rb', line 244
def or_else_wt(_t_new_err, &_block)
T.cast(self, Result::Ok[OkType, T.type_parameter(:NewErrType)])
end
|
#to_s ⇒ String
249
250
251
|
# File 'lib/mangrove/result.rb', line 249
def to_s
"#{super}: inner=`#{@inner}`"
end
|
156
157
158
|
# File 'lib/mangrove/result.rb', line 156
def unwrap!
@inner
end
|
#unwrap_or_raise!(_exception) ⇒ OkType
161
162
163
|
# File 'lib/mangrove/result.rb', line 161
def unwrap_or_raise!(_exception)
@inner
end
|
#unwrap_or_raise_inner! ⇒ OkType
166
167
168
|
# File 'lib/mangrove/result.rb', line 166
def unwrap_or_raise_inner!
@inner
end
|