< 返回版块

damody 发表于 2019-05-31 17:18

Tags:rust

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项目

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仓库镜像,应该会更稳定。快来试试吧

rustcc/lernaean-deploy


From 日报小组 @Damody

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页