特征和生锈

Traits and Rust

正在查看一些 Rust 代码,并注意到以下代码块:

pub trait Foo: Bar {
    // methods omitted
}

我想知道这段代码到底做了什么。我熟悉这个:

impl Foo for Struct {
    /// methods omitted
}

但以前从未遇到过前者。

该块定义了一个名为 Foo 的新特征,然后允许您在各种地方使用该特征,例如您发布的 impl 块。 : Bar 部分表示任何实现 Foo 的类型也必须实现 Bar 特性。