PackageTrack
Sign in Get early access

oxidized

Definitions of Rust-like types, Option and Result, to promote safer programming.

6.2.0 10K downloads/mo #2913 most downloaded on pub.dev nlfiedler/oxidized

What this package is like to depend on

Last release 2 years ago

no release in 18 months

Release timing varies

gaps range from 9 days to 12 months

Nearly every release is documented

notes for 16 of 16 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

16 releases · first in 2020

0 releases in the last 12 months

see the full history below

Release timeline

16 releases · Mar 2020 to Jul 2024
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 16
  1. 6.2.0 23 Jul 2024
    Release notes

    Changed

    • JonasWanke: allow nullable values in Some and Ok
    Open source →
    Release notes

    Changed

    • JonasWanke: allow nullable values in Some and Ok
    Open source →
  2. 6.1.0 15 Jul 2023
    Release notes

    Added

    • amaxcz: add matchOk(), matchErr(), and unwrapOrNull() functions to Result
    • amaxcs: unwrap() function now contains the original error message
    Open source →
    Release notes

    Added

    • amaxcz: add matchOk(), matchErr(), and unwrapOrNull() functions to Result
    • amaxcs: unwrap() function now contains the original error message
    Open source →
  3. 6.0.0 19 Jun 2023
    Release notes

    Changed

    • Now requires Dart SDK version 3 or higher.
    • BREAKING CHANGE: Both Option and Result are now sealed classes
      which allows for the use of exhaustive pattern matching.
    • feelsantiago: introduced the sealed class change to Option and Result.
    Open source →
    Release notes

    Changed

    • Now requires Dart SDK version 3 or higher.
    • BREAKING CHANGE: Both Option and Result are now sealed classes which allows for the use of exhaustive pattern matching.
    • feelsantiago: introduced the sealed class change to Option and Result.
    Open source →
  4. 5.3.0 14 Jan 2023
    Release notes

    Fixed

    • stumblinbear: Fix possible invalid casting in catch block.

    Changed

    • kranfix: Replaced pedantic (deprecated) by very_goog_analysis.
    • kranfix: Refactored Option into many mixins.
    • kranfix: Better implementation for Option async methods.
    • kranfix: Ok.unit and Err.unit static methods
    Open source →
    Release notes

    Fixed

    • stumblinbear: Fix possible invalid casting in catch block.

    Changed

    • kranfix: Replaced pedantic (deprecated) by very_goog_analysis.
    • kranfix: Refactored Option into many mixins.
    • kranfix: Better implementation for Option async methods.
    • kranfix: Ok.unit and Err.unit static methods
    Open source →
  5. 5.2.0 11 Feb 2022
    Release notes

    Added

    • rlch: Added async methods to Option<T> and Result<T, E>.
    • rlch: Added missing type arguments to Option<T> and Result<T, E>.
    • rlch: Added code coverage for async methods.
    • rlch: Added OptionFutureRedirector util to redirect methods called on Future<Option<T>>.
    • rlch: Added ResultFutureRedirector util to redirect methods called on Future<Result<T, E>>.
    Open source →
    Release notes

    Added

    • rlch: Added async methods to Option<T> and Result<T, E>.
    • rlch: Added missing type arguments to Option<T> and Result<T, E>.
    • rlch: Added code coverage for async methods.
    • rlch: Added OptionFutureRedirector util to redirect methods called on Future<Option<T>>.
    • rlch: Added ResultFutureRedirector util to redirect methods called on Future<Result<T, E>>.
    Open source →
  6. 5.1.0 20 Sep 2021
    Release notes

    Added

    • kranfix: Option<Result<T, E>>.transpose() returns a Result<Option<T>, E>.
    • kranfix: Option<Option<T>>.flatten() returns an Option<T>.
    • kranfix: Result<Option<T>, E>.transpose() returns an Option<Result<T, E>>.
    • kranfix: Result<Result<T, E>, E>.flatten() returns a Result<T, E>.
    Open source →
    Release notes

    Added

    • kranfix: Option<Result<T, E>>.transpose() returns a Result<Option<T>, E>.
    • kranfix: Option<Option<T>>.flatten() returns an Option<T>.
    • kranfix: Result<Option<T>, E>.transpose() returns an Option<Result<T, E>>.
    • kranfix: Result<Result<T, E>, E>.flatten() returns a Result<T, E>.
    Open source →
  7. 5.0.1 24 Aug 2021
    Release notes

    Changed

    • kranfix: Fixed equality operator for Option and Result.
    • kranfix: Added more code coverage in unit tests.
    Open source →
    Release notes

    Changed

    • kranfix: Fixed equality operator for Option and Result.
    • kranfix: Added more code coverage in unit tests.
    Open source →
  8. 5.0.0 11 Aug 2021
    Release notes

    Changed

    • BREAKING CHANGE: can no longer pass null to Result. The rectifies the inconsistent handling of null values with regards to Option and Result.
    • kranfix: refactored Option<T extends Object> to fix Result<int?, Exception>.ok(null).ok()
    • kranfix: refactored Result<T extends Object, E extends Object> to fix Result<int?, Exception>.ok(null)
    Open source →
    Release notes

    Changed

    • BREAKING CHANGE: can no longer pass null to Result. The rectifies the inconsistent handling of null values with regards to Option and Result.
    • kranfix: refactored Option<T extends Object> to fix Result<int?, Exception>.ok(null).ok()
    • kranfix: refactored Result<T extends Object, E extends Object> to fix Result<int?, Exception>.ok(null)
    Open source →
  9. 4.2.0 01 May 2021
    Release notes

    Added

    • lemunozm: added isSome(), isNone() to Option.
    • lemunozm: added isOk(), isErr() to Result.
    • lemunozm: added Option.from() and Option.toNullable() to make easy conversions with nullable values.
    • Added a Unit type that is similar to Rust's () type.
    Open source →
    Release notes

    Added

    • lemunozm: added isSome(), isNone() to Option.
    • lemunozm: added isOk(), isErr() to Result.
    • lemunozm: added Option.from() and Option.toNullable() to make easy conversions with nullable values.
    • Added a Unit type that is similar to Rust's () type.
    Open source →
  10. 4.1.0 10 Mar 2021
    Release notes

    Changed

    • lemunozm: return values added to match(), when() in Result, Option.
    • BREAKING CHANGE: migrated to null safety and Dart SDK 2.12.

    Notes

    Forgot to push 4.0 to GitHub, but those commits are now ahead of the changes made more recently for 4.1, so as a result there is no 4.0 release on GitHub.

    Open source →
    Release notes

    Changed

    • lemunozm: return values added to match(), when() in Result, Option.
    Open source →
  11. 4.0.0 04 Mar 2021
    Release notes

    Changed

    • BREAKING CHANGE: migrated to null safety and Dart SDK 2.12.
    Open source →
  12. 3.1.0 22 Mar 2020
    Release notes

    Added

    • Add fold() function on Result that combines map() and mapErr().
    Open source →
  13. 3.0.1 19 Mar 2020
    Release notes

    Changed

    • Fix the package description and code formatting.
    Open source →
  14. 3.0.0 19 Mar 2020
    Release notes

    Changed

    • BREAKING CHANGES: see below for the details.
    • The Result "ok" and "error" values are full-fledged classes now.
    • The Option "some" and "none" values are full-fledged classes now.
    • Option.isSome() and Option.isNone() are gone, use is Some and is None.
    • Result.isOk() and Result.isErr() are gone, use is Ok and is Err.
    • The default Result constructor has been renamed to of() instead.
    • Passing null to the Option.some() factory constructor will yield a None.
    • Both the Ok and Err subclasses of Result allow for null arguments.
    Open source →
  15. 2.0.0 14 Mar 2020
    Release notes

    Added

    • Borrowing from simple_result, added when() as an alternative to match().

    Changed

    • BREAKING CHANGE: the various is methods are now getters.
    • Extend Equatable in both Option and Result.
    • Override the equals operator (==) in both Option and Result.
    Open source →
  16. 1.0.0 09 Mar 2020
    Release notes

    Added

    • Initial version
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive