nidula 1.0.2 nidula: ^1.0.2 copied to clipboard
A lightweight Dart library for Rust-like Option/Result types, implemented leveraging pattern matching. Offers a compile-time safe and chainable parallel to Rust's try operator for None/Err propagation.
1.0.2 #
- Improved project description.
- Made small adjustments to vscode snippets.
1.0.1 #
- Fixed typo in docs.
1.0.0 #
- Exported chaining methods at library level.
- Accidentally forgotten in version 0.7.0.
- Changed return type of
chain
/chainSync
chaining methods to a generic type of your choiceA
. - Included
onAny
/onAnySync
chaining methods. - Corrected chaining extension names for
Option<T>
andFuture<Option<T>>
. - Improved docs.
- For Nix devs: updated flake. Some pull requests that enormously improve Flutter/Dart support were recently merged (nixpkgs).
- Moved repository to Codeberg.
0.7.0 #
- Renamed
syncTryScope
to justtryScope
. - Included chaining methods (
chain
,onOk
,onSome
, ...). - Improved docstring.
- Updated VSCode snippets.
0.6.0 #
- Majorly improved docstring throughout entire codebase.
- Improved docs.
- Removed
Option.mapOrNull
,Result.mapOrNull
andResult.mapErrOrNull
. - Removed
Option.unwrapOrNull
. - Replaced
Result.unwrapOrNull
andResult.unwrapErrOrNull
with ,Result.okToNullable
andResult.errToNullable
. - Improved
Result.toJson
andOption.toJson
type-safety-wise (transformers are now required).
0.5.0 #
- Made
Option
'sT
andResult
'sT
andE
nullable. - Added extensions for all
*orNull
methods.- These methods are available only with non-nullable types, e.g., types extending
Object
.
- These methods are available only with non-nullable types, e.g., types extending
- Added more pattern matching snippets.
- Added
toJson
methods andfromJson
static methods. - Updated documentation.
0.4.2 #
- Added snippets section.
- Improved documentation.
- Corrected information in docstring.
0.4.1 #
- Improved documentation.
0.4.0 #
- Changed return type of
Option.mapOr
,Option.mapOrElse
,Result.mapOr
,Result, mapOrElse
to justU
. - Added
Option.mapOrNull
,Result.mapOrNull
andResult.mapErrOrNull
. - Added
Option.filter
. - Improved documentation.
0.3.0 #
- Added
Option.unwrapOrNull
,Result.unwrapOrNull
, andResult.unwrapErrOrNull
. - Added
zipOp
. - Renamed extensions so that they do not start with
Result
orOption
.- When using autocomplete, this way they are less relevant.
- Removed
Option.unwrapOrDefault
andResult.unwrapOrDefault
, which do not make sense in Dart due to absence of default value.
0.2.3 #
- Improved examples.
0.2.2 #
- Added
match
method toOption
andResult
.
0.2.1 #
- Added explanation on how to achieve functionality similar to Rust's
From
trait for error conversion before propagation. - Updated documentation.
0.2.0 #
- Renamed try operator components.
unwrapOrPropagateErr
andunwrapOrPropagateNone
were renamed totry_
.syncErrPropagationScope
/asyncErrPropagationScope
andsyncNonePropagationScope
/asyncNonePropagationScope
were renamed tosyncTryScope
/asyncTryScope
.- Token variable names default to
nt
andet
(previouslyt
for both cases).
- Renamed
from
tofromNullable
, addedtoNullable
. - Updated documentation.
0.1.3 #
- Improved documentation.
0.1.2 #
- Improved documentation.
- Improved docstring.
- Included
e
inunwrap
's Panic message. - Updated
toString
method ofNonePropagation
andErrPropagation
.
0.1.1 #
- Improved documentation.
- Added "Parallel to Rust's try-operator implementation" subsections.
- Added "Nested options and comparison to nullable types" subsection.
- Fixed typos.
0.1.0 #
- Renamed most classes and methods and static methods. Names are longer, but much more obvious:
prop
was renamed tounwrapOrPropagateErr
andunwrapOrPropagateNone
.catchProp
/catchPropAsync
were renamed tosyncErrPropagationScope
/asyncErrPropagationScope
andsyncNonePropagationScope
/asyncNonePropagationScope
.ResultPropError
was renamed toErrPropagation
. Same forOptionPropError
, which was renamed toNonePropagation
.ResultPropToken
was renamed toErrPropagationToken
. Same forOptionPropToken
, which was renamed toNonePropagationToken
.
- Added
Propagation
abstract class. - Improved and refactored tests.
- Improved docstring.
- Improved README.
0.0.3 #
- Added try-catch warning to README.
- Added more code to
nidula_example.dart
. - Small fix to example in README.
0.0.2 #
- Uploaded again to fix repository URL detection.
0.0.1 #
- Initial version.
- Forked from
option_result
, bringing the following enhancements:- Try-operator implementation rewritten from scratch.
- Compile time safety through propagation tokens.
- Chainable.
- Simpler and clearer library-internal error handling strategy.
T
andE
types must extendObject
(thus, non-null values are prohibited).- This enforces composition with
Option
types (Option<T>
) instead of nullable types (T?
).
- This enforces composition with
- Only
T v
andE e
fields (and, thus, getters) are available.value
,val
,err
anderror
aliases were removed.
- There is only a single public library to import components from.
- Final modifiers to prevent extending
Ok
,Err
,Some
andNone
. ==
operator takes all generic types into consideration when comparingOption
objects andResult
objects.- Added variable names to all function parameters in types
- Callback autocomplete outputs e.g.
(v) {}
instead of(p0) {}
- Callback autocomplete outputs e.g.
- Try-operator implementation rewritten from scratch.
- Forked from