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
生成代码。仅适用于低级库。