Enum的值如何作为类型
這位寫C++的老兄想寫以前的Enum
fn pet(_: Animal::Whale) {}
fn pet(_: Animal::Dog) {}
// or somehow describe a trait that forces its implementors to impl specific enum variants; not allow them to impl the whole enum
trait Petter<T> {
fn pet(_: Animal::T);
}
rust的近似方案1
struct Dog {}
struct Whale {}
enum Animal {
Dog(Dog),
Whale(Whale),
}
rust的近似方案2
// given there is a trait Bar, and types A and B implement it:
enum Foo {
A(A),
B(B),
}
impl Bar for Foo {
fn bar(&self) {
match self {
A(a) => a.bar(),
B(b) => b.bar(),
}
}
}
impl From<A> for Foo {
fn from(a: A) -> Foo {
Foo::A(a)
}
}
有個庫enum_dispatch可以達到類似的效果
#[enum_dispatch]
enum Foo {
A,
B,
}
Read more
j4rs 從rust调用java
在rust裡面建立 JvmBuilder 再调用 java 函數
Read more
Tarpaulin 一個計算代碼覆蓋率的工具
只支援 x86_64 Linux
Read more
用 wasm 重製骨灰级遊戲 pong
Read more
遊戲排隊系統尋找外包
「*」找外包 預算6萬人民幣 有興趣的人請寄 t1238142000@gmail.com ,要求Rust实现。
Read more
Facebook开源的 Mercurial源码控制系统的下一代服务器 mononoke 最近升级到了2018 edition
mononoke
Rust和Blender
Blender是一个免费的开源3D创作套件。该文作者曾经在Blender工作过,编写过Python API。为了探索Blender二进制文件格式并提供读取和使用它们的工具,该文作者创建了一个Rust项目
Read More
rs_blender
rust-battop: 交互式终端电量可视化工具
基于Tui-rs实现。
rust-battop
从Rust调用Go库:使用SQIP进行案例研究
SQIP 是基于SVG 的LQIO 方案,其能够用于生成可用的SVG格式。作者之前用Node.js中的SQIP包,但是不够稳定,然后又打算用Rust重新实现,又不打算重头编写,所以找到了SQIP的Go绑定库,想通过FFI在Rust中调用Go代码。但是和Cgo打交道,性能不知道如何。
Read More
rust.cc社区提供了国内crates镜像
与清华,交大等镜像不同的是,这个是专用的Rust仓库镜像,应该会更稳定。快来试试吧