4个稳定版本
1.2.0 | 2022年10月16日 |
---|---|
1.1.1 | 2020年10月21日 |
1.1.0 | 2020年10月19日 |
1.0.0 | 2020年10月18日 |
#920 in Rust模式
4,248 每月下载量
在 6 个包中使用 (通过 fixed-macro)
105KB
1K SLoC
fixed-macro
此库提供了fixed!
,这是一个proc-macro,它允许轻松地为在fixed
包中提供的所有定点类型创建定点常量。
[dependencies]
fixed-macro = "1.1"
编译器支持:rustc 1.61+。
详细信息
-
宏的语法如下
fixed!(<value>: <type>)
其中
<value>
是一个整型字面量或浮点字面量,而<type>
的形式是I<i>F<f>
或U<i>F<f>
,与fixed::types
中提供的类型别名之一匹配。请注意,<value>
必须是一个字面量,而不是任意的算术表达式,并且<type>
被视为一个特殊标识符,因此不需要首先导入。 -
创建在编译时解析的定点常量(支持与Rust本身相同的整型和浮点字面量的语法,包括下划线和科学记数法)
use fixed_macro::fixed; use fixed::types::U8F8; let x1 = fixed!(-1.23: I32F32); // float literal (note, the type is not in scope) const X2: U8F8 = fixed!(1.2: U8F8); // can be used to initialize const values let x3 = fixed!(123: U8F8); // decimal integers work as well let x4 = fixed!(0x7B: U8F8); // and hex/oct/bin integers too let x5 = fixed!(1_234.567_890: I32F32); // underscores are ignored, same as in rustc let x7 = fixed!(0.12e+01: U8F8); // scientific notation is also supported
-
对于从
fixed::types
到fixed_macro::types
的每个类型别名,都有一个具有匹配名称的宏,您可以在不指定类型名称的情况下使用use fixed_macro::types::I16F48; let a1 = I16F48!(-1.23);
宏和类型可以在同一作用域中愉快地共存
use fixed::types::I16F48; use fixed_macro::types::I16F48; const B1: I16F48 = I16F48!(1.23e-2);
您可以选择在不同的(或相同的)用户定义名称下导入它们
use fixed::types::{I16F48 as Decimal}; use fixed_macro::types::{I16F48 as dec}; let c1 = dec!(12_345); const C2: Decimal = dec!(-0.123_456);
许可证
根据您的选择,许可证可以是Apache License, Version 2.0或MIT license。除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在此包中的任何贡献,将按上述方式双重许可,不附加任何额外条款或条件。
lib.rs
:
允许为每个可用的定点类型创建常量的宏。
依赖关系
~4MB
~81K SLoC