1 个不稳定版本
0.1.0 | 2022 年 8 月 4 日 |
---|
#7 in #describing
32KB
648 行
Iknow
支持 Rust 语法的一种自描述知识格式
动机
从能够描述其他知识格式的根知识格式中启动知识格式。
根知识结构的自描述
以下既是有效的 Rust 代码,也是 Iknow 格式。它描述了 Rust 中 Iknow 格式的内部表示。
"assets/self_root.txt"
enum Root {
Ty(Arc<String>),
Str(Arc<String>),
F64(f64),
Bool(bool),
Avatar(Box<(Self, Self)>),
Tup(Vec<Self>),
Struct {name: Box<Self>, fields: Vec<Self>},
Enum {name: Box<Self>, variants: Vec<Self>},
Instance {class: usize, data: Option<Box<Self>>},
InstanceTy {ty: Box<Self>, data: Option<Box<Self>>},
}
泛型版本
根知识格式可以描述其自身的泛型版本。这不是有效的 Rust 代码,因为在使用 .
注释自定义/泛型类型之前存在限制,例如 .T
。
"source/test/generics/gen_root.txt"
enum Root<.T> {
Ty(Arc<String>),
Val(.T),
Avatar(Box<(Self<.T>, Self<.T>)>),
Tup(Vec<Self<.T>>),
Struct {name: Box<Self<.T>>, fields: Vec<Self<.T>>},
Enum {name: Box<Self<.T>>, variants: Vec<Self<.T>>},
Instance {class: usize, data: Option<Box<Self<.T>>>},
InstanceTy {ty: Box<Self<.T>>, data: Option<Box<Self<.T>>>},
}
"Iknow" 名称的来源
在《星球大战》第五部电影中,Han Solo 被冷冻,而 Leia 在看。
Leia: "我爱你"
Han: "我知道"
依赖关系
~250KB