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