Crate grammers_tl_types

Crate grammers_tl_types 

Source
Expand description

This library contains the Rust definitions for Telegram’s types and functions in the form of struct and enum. All of them implement Serializable, and by default only types implement Deserializable.

If you’re here because you want to invoke the “raw API” methods Telegram has to offer, use the search or read through the available functions to find out what “parameters” such remote call needs. Then, create an instance of it and pass it to some higher level library that can talk with Telegram’s servers.

To preserve compatibility with older applications, the API has a concept of “layers”, where new layers can change, remove or add new definitions. The LAYER constant indicates which of the many layers was used to generate the definitions present in this version of this crate.

§Usage

The primary purpose is using these definitions to create requests (known as functions) which can be serialized and sent to Telegram. Note that this crate has no way to “invoke” any of these requests, this is to be done by a higher-level crate.

All of the requests implement RemoteCall. This trait’s associated type indicates what type the response from Telegram will be when invoked.

After opening one of the many types, you can inspect their fields to figure out what data Telegram will return.

§Features

The default feature set is intended to make the use of the library comfortable, and not intended to be minimal in code size. If you need a smaller library or are concerned about build-times, consider disabling some of the default features.

The default feature set includes:

  • impl-debug.
  • impl-from-enum.
  • impl-from-type.
  • tl-api.

The available features are:

  • deserializable-functions: implements Deserializable for functions. This might be of interest for server implementations, which need to deserialize the client’s requests, but is otherwise not required.

  • impl-debug: implements Debug for the generated code.

  • impl-from-enum: implements TryFrom<Enum> for Type.

  • impl-from-type: implements From<Type> for Enum.

  • tl-api: generates code for the api.tl. This is what high-level libraries often need.

  • tl-mtproto: generates code for the mtproto.tl. Only useful for low-level libraries.

  • impl-serde: generates code for serde support

Re-exports§

pub use deserialize::Cursor;
pub use deserialize::Deserializable;
pub use serialize::Serializable;

Modules§

deserialize
Types and traits involving the deserialization of the generated objects.
enums
All of the boxed types, each represented by a enum.
functions
All of the functions, each represented by a struct.
serialize
Traits involving the serialization of the generated objects.
types
All of the bare types, each represented by a struct.

Structs§

Blob
Unparsed bytes that should not be deserialized as a bytes string.
RawVec
Bare vector type (vector as opposed to the type Vector).

Constants§

LAYER
The schema layer from which the definitions were generated.

Traits§

Identifiable
Used by types identifiable by both ends (client-server) when performing Remote Procedure Calls (RPC) and transmission of objects.
RemoteCall
Used by types that are suitable for use to perform Remote Procedure Calls (RPC).

Functions§

name_for_id
Return the name from the .tl definition corresponding to the provided definition identifier.