7个版本 (破坏性)
| 0.6.0 | 2024年5月3日 |
|---|---|
| 0.5.1 | 2023年11月18日 |
| 0.4.0 | 2022年10月14日 |
| 0.3.0 | 2021年5月5日 |
| 0.1.0 | 2020年1月31日 |
#333 在 编码
每月423次下载
在 7 个crate中使用 (6直接)
72KB
582 行
grammers-tl-types
此库提供了Rust struct 和 enum 类型,代表从类型语言构建时输入文件中的定义。
此外,每个类型都有一个在 Serializable 和 Deserializable 上的 impl,前者将实例序列化为字节数组,如二进制数据序列化部分所述,后者对其进行反序列化。
lib.rs:
此库包含Telegram的types 和 functions的Rust定义,以struct 和 enum的形式。它们都实现了Serializable,并且默认情况下,只有类型实现了Deserializable。
如果你来到这里是因为你想调用Telegram提供的“原始API”方法,请使用搜索或阅读可用的functions以找出此类远程调用所需的“参数”。然后,创建其实例并将其传递给可以与Telegram服务器通信的高级库。
为了保持与旧应用程序的兼容性,API有一个“层”的概念,其中新层可以更改、删除或添加新的定义。常量LAYER表示用于生成此crate版本的当前版本的哪个层。
用法
主要目的是使用这些定义来创建请求(称为 functions),这些请求可以被序列化并发送到Telegram。请注意,这个crate没有“调用”任何请求的方法,这需要由更高级的crate来完成。
所有请求都实现了 RemoteCall。此trait的关联类型指示当调用时,Telegram的响应类型。
打开许多 types 之一后,您可以检查它们的字段以了解Telegram将返回什么数据。
功能
默认功能集旨在使库的使用舒适,而不是最小化代码大小。如果您需要更小的库或担心构建时间,请考虑禁用一些默认功能。
默认功能集包括
impl-debug.impl-from-enum.impl-from-type.tl-api.
可用的功能包括
-
deserializable-functions:为functions实现Deserializable。这可能对需要反序列化客户端请求的服务器实现感兴趣,但在其他情况下不是必需的。 -
impl-debug:为生成的代码实现Debug。 -
impl-from-enum:实现TryFrom<Enum> for Type。 -
impl-from-type:实现From<Type> for Enum。 -
tl-api:为api.tl生成代码。这是高级库通常需要的。 -
tl-mtproto:为mtproto.tl生成代码。仅适用于低级库。