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