proc-macro-workshop:sorted-8

godme發表於2022-07-06
// There is one other common type of pattern that would be nice to support --
// the wildcard or underscore pattern. The #[sorted] macro should check that if
// a wildcard pattern is present then it is the last one.

use sorted::sorted;

#[sorted]
pub enum Conference {
    RustBeltRust,
    RustConf,
    RustFest,
    RustLatam,
    RustRush,
}

impl Conference {
    #[sorted::check]
    pub fn region(&self) -> &str {
        use self::Conference::*;

        #[sorted]
        match self {
            RustFest => "Europe",
            RustLatam => "Latin America",
            _ => "elsewhere",
        }
    }
}

fn main() {}

看程式碼不太清楚,但是看見提示wildcard那就瞭然於胸了。

我們需要支援wildcard,也就是_

一切都在sorted-5,我們已然支援。
不過有一點容易忽略的是,_排序本身就低於英文字母,所以才能保證直接排序。
如果使用的不是_,那還需要額外操作。

sorted真 · 完結

本作品採用《CC 協議》,轉載必須註明作者和本文連結