1 个不稳定版本

0.1.0 2022年4月1日

#1925 in 编码

Apache-2.0

29KB
275

此库包含 Telegram 的 typesfunctions 定义,形式为 structenum。所有这些都实现了 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生成代码。仅适用于低级库。

无运行时依赖