1 个不稳定版本
0.1.0 | 2022年4月1日 |
---|
#1925 in 编码
29KB
275 行
此库包含 Telegram 的 types
和 functions
定义,形式为 struct
和 enum
。所有这些都实现了 Serializable
,默认情况下,只有类型实现了 Deserializable
。
如果您在这里是因为想调用 Telegram 提供的“原始 API”方法,请使用搜索或阅读可用的 functions
来找出这种远程调用所需的“参数”。然后,创建其实例并将其传递给可以与 Telegram 服务器通信的更高级的库。
为了保持与旧应用程序的兼容性,API 有“层”的概念,其中新层可以更改、删除或添加新的定义。常量 LAYER
表示用于生成此版本中库中现有定义的许多层中的哪一个。
用法
主要目的是使用这些定义来创建请求(称为 functions
),这些请求可以被序列化并发送到 Telegram。请注意,此crate无法“调用”这些请求,这需要由更高级的crate来完成。
所有请求都实现了 RemoteCall
。此特质的关联类型表示在调用时 Telegram 的响应类型。
打开许多 types
之一后,您可以检查它们的字段以确定 Telegram 将返回什么数据。
功能
默认功能集旨在使库的使用舒适,而不是在代码大小上最小化。如果需要更小的库或担心构建时间,请考虑禁用一些默认功能。
默认功能集包括
impl-debug
.impl-from-enum
.impl-from-type
.tl-api
.
可用的功能包括
-
可反序列化函数
:为Deserializable
实现functions
。这可能对需要反序列化客户端请求的服务器实现感兴趣,但通常不是必需的。 -
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
生成代码。仅适用于低级库。