nidula 0.2.2 copy "nidula: ^0.2.2" to clipboard
nidula: ^0.2.2 copied to clipboard

A lightweight Dart library for Rust-like Option/Result types. Supports exhaustive pattern matching and compile-time safe, chainable None/Err propagation.

example/nidula_example.dart

import 'package:nidula/nidula.dart';

Result<double, String> example(Result<double, String> r) {
  return Result.syncTryScope<double, String>((et) {
    r = Ok(r.try_(et) / 2);
    return Ok(r.try_(et));
  });
}

void main() {
  print('#1: ${example(Err('s'))}'); // #1: Err(s)
  print('#2: ${example(Ok(14))}'); // #2: Ok(7.0)
  print(Result.syncTryScope<I, String>((et) {
    return Ok(
      Ok<I, String>(I()).try_(et).make().try_(et).make().try_(et),
    );
  }));
}

class I {
  Result<I, String> make() {
    return Ok(I());
  }
}
6
likes
0
pub points
17%
popularity

Publisher

verified publishermanuelplavsic.ch

A lightweight Dart library for Rust-like Option/Result types. Supports exhaustive pattern matching and compile-time safe, chainable None/Err propagation.

Repository (GitLab)
View/report issues

Topics

#option #result #pattern-matching #rust-try-operator

License

unknown (license)

More

Packages that depend on nidula