option_result 1.0.0 copy "option_result: ^1.0.0" to clipboard
option_result: ^1.0.0 copied to clipboard

A lightweight Dart library for Rust-like Option/Result types. Supports exhaustive pattern matching and provides helpers for None()/Err() propagation

1.0.0 #

  • Final documentation update for 1.0.0 release 🎉

0.1.0-dev-4 #

  • Update documentation

0.1.0-dev-3 #

  • Allow const Option and Result values
  • Rename Option#filter() -> Option#where()
    • This is more Dart-idiomatic

0.1.0-dev-2 #

  • Add Option#iter()
  • Add Result#iter()

0.1.0-dev-1 #

  • Add Option#toString()
  • Add Result#toString()
  • Rework == for Option and Result types.
    • Previously == would check for matching runtime types in addition to held value equality. I was trying to keep things as close to Rust's behavior as I could. It didn't occur to me until after I rewrote it to be more accommodating of dynamic values that it didn't support comparing held values that inherit from eachother that might normally be comparable in both the original implementation and the rewrite so I scrapped both in favor of solely comparing held values.

0.0.1-dev-9 #

  • Add Result#transpose(), ok(), err()

0.0.1-dev-8 #

  • Add Option#unwrapOrElse(), okOr(), okOrElse(), transpose()
  • Add Result#unwrapOrElse(), isOkAnd(), isErrAnd(), mapOr(), mapOrElse()

0.0.1-dev-7 #

  • Add Option#inspect(), xor(), isSomeAnd(), mapOr(), mapOrElse()
  • Add Result#inspect(), inspectErr()

0.0.1-dev-6 #

  • Add Option#flatten()
  • Add Result#flatten()
  • Refactor ~ shortcut for propagateResult/Async to return dynamic for ergonomics.
    • See documentation for more information

0.0.1-dev-5 #

  • Add ~ operator for unwrapping Option and Result types
  • Add ~ operator as shortcut for propagating None()/Err() in functions returning Option/Result
  • Rework Option#unzip() via extension methods to only provide the method on Option<(T, U)> values

0.0.1-dev-4 #

  • Add Option#and(), andThen(), or(), orElse(), expect()
  • Add Result#and(), andThen(), or(), orElse(), expect(), expectErr()

0.0.1-dev-3 #

  • Add Option#map(), zip(), zipWith(), unzip()
  • Add Result#map(), mapErr()
  • Reworked propagateResult/Async semantics to be more in-line with Rust's Result Err propagation

0.0.1-dev-2 #

  • Add separate packages to allow importing option and result separately
  • Add Option#filter() method

0.0.1-dev-1 #

  • Initial version.
13
likes
150
pub points
58%
popularity

Publisher

unverified uploader

A lightweight Dart library for Rust-like Option/Result types. Supports exhaustive pattern matching and provides helpers for None()/Err() propagation

Repository (GitHub)
View/report issues

Topics

#option #result #pattern-matching

Documentation

API reference

License

MIT (license)

More

Packages that depend on option_result