【Rust日報】2020-11-21 使用 const 泛型的物理單位

使用 const 泛型的物理單位

const_unit_poc 就像一個具備更好的錯誤消息的  uom
   
#![feature(const_generics, const_evaluatable_checked)]
use const_unit_poc::values::{m, kg, s, N};

let distance = 1.0 * m;
let mass = 18.0 * kg;
let force = distance * mass / (1.8 * s * 2.0 * s);
assert_eq!(force, 5.0 * N);

let mut mutable_distance = 3.2 * m;
mutable_distance -= 0.2 * m;
mutable_distance += 2.0 * m;

assert_eq!(mutable_distance, 5.0 * m);
const_unit_poc  crate  連接 ,https://docs.rs/const_unit_poc/1.0.0/const_unit_poc/

Knurling-rs

Knurling-rs,是用於開發和調試用於嵌入式系統的 Rust 軟件。第七次的 changelog:
  • defmt-test 進入 crates.io,是 no_std 測試工具,能夠用於編寫在微控制器上運行的單元測試。
  • 發佈了 defmt  v0.1.1 和  probe-run  v0.1.5
Github 連接 ,https://github.com/knurling-rs

Lunatic

Lunatic,用於構建使用 WebAssembly 實例做爲 actors 的 Actor 系統平臺。它在很大程度上受到 Erlang 的啓發,能夠從可編譯爲 WebAssembly 的任何語言中進行定位。當前只有 Rust 的綁定可用。
示例:
   
use lunatic::{Channel, Process};

fn main() {
let channel = Channel::new(0);
let vec: Vec<i32> = (0..1_000).collect();

for i in vec.iter() {
Process::spawn((*i, vec.clone(), channel.clone()), child).unwrap();
}

for _ in vec.iter() {
let (i, sum) = channel.receive();
println!("Sum until {}: {}", i, sum);
}
}

// Child process calculates the sum of numbers of context.1 until context.0 index.
fn child(context: (i32, Vec<i32>, Channel<(i32, i32)>)) {
let i = context.0;
let vec = context.1;
let channel = context.2;
let sum_until_i: i32 = vec[..=i as usize].iter().sum();
channel.send((i, sum_until_i));
}
該應用程序產生1000個子進程,並在每一個子進程中計算從0到i的數字總和,而後將結果發送回父進程並進行打印。
Github 連接 ,https://github.com/lunatic-lang/lunatic

【視頻】Rust Github 模版

使用 Rust GitHub 模板,能夠當即建立一個託管在 GitHub 上的 Rust 項目。包括持續集成,持續部署和文檔!
視頻 連接 ,https://www.youtube.com/watch?v=meAz2RQMHvM

介紹文章連接:https://rust-github.github.io/git


From 日報小組  洋芋
社區學習交流平臺訂閱:
  • Rustcc論壇: 支持rss
  • 微信公衆號:Rust語言中文社區

本文分享自微信公衆號 - Rust語言中文社區(rust-china)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。github

相關文章
相關標籤/搜索