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编码

Download history 265/week @ 2024-04-29 79/week @ 2024-05-06 49/week @ 2024-05-13 114/week @ 2024-05-20 93/week @ 2024-05-27 98/week @ 2024-06-03 60/week @ 2024-06-10 50/week @ 2024-06-17 63/week @ 2024-06-24 51/week @ 2024-07-01 41/week @ 2024-07-08 63/week @ 2024-07-15 149/week @ 2024-07-22 84/week @ 2024-07-29 70/week @ 2024-08-05 115/week @ 2024-08-12

每月423次下载
7 个crate中使用 (6直接)

MIT/Apache

72KB
582

grammers-tl-types

此库提供了Rust structenum 类型,代表从类型语言构建时输入文件中的定义。

此外,每个类型都有一个在 SerializableDeserializable 上的 impl,前者将实例序列化为字节数组,如二进制数据序列化部分所述,后者对其进行反序列化。


lib.rs:

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

无运行时依赖