#constants #constructs #set

iota

相关常量:1 << iota

5个版本

0.2.3 2022年12月19日
0.2.2 2020年6月16日
0.2.1 2019年12月26日
0.1.4 2017年3月10日
0.1.2 2015年10月26日

#5 in #constructs

Download history 63/week @ 2024-03-11 44/week @ 2024-03-18 39/week @ 2024-03-25 114/week @ 2024-04-01 54/week @ 2024-04-08 43/week @ 2024-04-15 56/week @ 2024-04-22 32/week @ 2024-04-29 96/week @ 2024-05-06 57/week @ 2024-05-13 48/week @ 2024-05-20 48/week @ 2024-05-27 57/week @ 2024-06-03 61/week @ 2024-06-10 69/week @ 2024-06-17 57/week @ 2024-06-24

250 每月下载
3 个crate中使用

MIT/Apache

10KB
77

1 << iota

github crates.io docs.rs build status

iota! 构建一组相关常量。

[dependencies]
iota = "0.2"
use iota::iota;

iota! {
    const A: u8 = 1 << iota;
        , B
        , C
        , D
}

fn main() {
    assert_eq!(A, 1);
    assert_eq!(B, 2);
    assert_eq!(C, 4);
    assert_eq!(D, 8);
}

iota! 块中,变量 iota 是一个未类型化的整数常量,其值从0开始,并在块中声明的每个常量中递增1。

use iota::iota;

iota! {
    const A: u8 = 1 << iota;
        , B

    const C: i32 = -1; // iota is not used but still incremented

    pub const D: u8 = iota * 2;
        , E
        , F
}

// `iota` begins again from 0 in this block
iota! {
    const G: usize = 1 << (iota + 10);
        , H
}

fn main() {
    assert_eq!(A, 1 << 0);
    assert_eq!(B, 1 << 1);

    assert_eq!(C, -1);

    assert_eq!(D, 3 * 2);
    assert_eq!(E, 4 * 2);
    assert_eq!(F, 5 * 2);

    assert_eq!(G, 1 << (0 + 10));
    assert_eq!(H, 1 << (1 + 10));
}

许可证

根据您的选择,在以下两者中许可:[a href="https://github.com/dtolnay/iota/blob/46c7d2876f85d2f006ed25287eff6047c624bff6/LICENSE-APACHE" rel="ugc noopener">Apache License, Version 2.0MIT许可证。
除非您明确表示,否则您提交给本crate的任何有意贡献,根据Apache-2.0许可证定义,应如上所述双重许可,而无需任何附加条款或条件。

无运行时依赖