1 个不稳定版本
| 0.1.0 | 2023年9月13日 |
|---|
#56 在 #表示
23KB
504 行(不含注释)
type-protocol
受 Go 编程语言启发的提供简单语法的类型表示的包。
lib.rs:
受 Go 编程语言启发的提供简单语法的类型表示的包。
通用类型
这些是在大多数语言中常见的数据类型。
- 布尔类型:
bool - 有符号整数类型:
int或isize,int8,int16,int32,int64,int128 - 无符号整数类型:
uint或usize,uint8,uint16,uint32,uint64,uint128 - 浮点类型:
float16,float32,float64 - 字符和字符串类型:
char,string
扩展类型
这些是常见的特殊数据类型,前缀为 +。
+bytes+dateTime,+date,+time,+duration+decimal+uuid+rgb,+rgba
类型和路径
任何不以保留符号开始的字符串段如果是非内建类型,则为 类型 或 路径。内建类型使用 snake_case,因此您应该使用 PascalCase 以避免冲突。
- 命名类型
MyType,Foöbár,Hello World,2022
可以根据用户需求提供验证器来验证标识符。
《RustIdent》验证器将失败Hello World和2022,而《AsciiIdent》验证器还将失败Foöbár。
注意,type-protocol 语法将空白符视为普通字符,如果需要,用户负责去除它们。
- 路径
path::to::类型
- 绝对路径
::path::to::类型
可选类型
?T表示可选类型,如Option<T>或可空指针。
例如:?string
数组类型
[N]T表示固定大小的数组类型,如[T;N]。N必须是一个整数。
例如:[4]int
Vec 类型
[]T表示动态大小的数组类型,如Vec<T>。
例如:[]int
集合类型
[T]表示唯一键的集合,如HashSet<T>。
例如:[string]
映射类型
[TKey]TValue表示键值对的集合,如HashMap<T>。
例如:[string]int
提示类型
- 外部提示
@T提示T是外部类型。
依赖关系
~0.3–1MB
~24K SLoC