rust 1.3.4 copy "rust: ^1.3.4" to clipboard
rust: ^1.3.4 copied to clipboard

A pure Dart implementation of Rust patterns. Types include Result, Option, Cell, Slice, Array, Iterator, etc. Facilitates functional programming and error handling.

Pub Version Dart Package Docs License: MIT Build Status

rust is a pure Dart implementation of patterns found in Rust's core library, bringing the power of Rust to Dart!

Types include Result, Option, Cell, Slice, Array, Iterator, Channels, Mutex, and more.

See the Rust Core Book 📖

Example #

Goal: Get the index of every "!" in a string not followed by a "?"

Rust:

use std::iter::Peekable;

fn main() {
  let string = "kl!sd!?!";
  let mut answer: Vec<usize> = Vec::new();
  let mut iter: Peekable<_> = string
      .chars()
      .map_windows(|w: &[char; 2]| *w)
      .enumerate()
      .peekable();

  while let Some((index, window)) = iter.next() {
      match window {
          ['!', '?'] => continue,
          ['!', _] => answer.push(index),
          [_, '!'] if iter.peek().is_none() => answer.push(index + 1),
          _ => continue,
      }
  }
  assert_eq!(answer, [2, 7]);
}

Dart:

import 'package:rust/rust.dart';

void main() {
  String string = "kl!sd!?!";
  List<int> answer = [];
  Peekable<(int, Arr<String>)> iter = string
      .chars()
      .mapWindows(2, identity)
      .enumerate()
      .peekable();
  while (iter.moveNext()) {
    final (index, window) = iter.current;
    switch (window) {
      case ["!", "?"]:
        break;
      case ["!", _]:
        answer.add(index);
      case [_, "!"] when iter.peek().isNone():
        answer.add(index + 1);
    }
  }
  expect(answer, [2, 7]);
}

Project Goals #

rust's primary goal is to give Dart developers access to powerful tools previously only available to Rust developers.

To accomplish this, Rust's functionalities are carefully adapted to Dart's paradigms, focusing on a smooth idiomatic language-compatible integration. The result is developers now have a whole new toolset to tackle problems in Dart.

True to the Rust philosophy, rust strives to bring reliability and performance in every feature. Every feature is robustly tested. Over 500 meaningful test suites and counting.

2
likes
0
pub points
42%
popularity

Publisher

verified publishervoyver.com

A pure Dart implementation of Rust patterns. Types include Result, Option, Cell, Slice, Array, Iterator, etc. Facilitates functional programming and error handling.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on rust