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
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.
LAYER constant indicates which of the many layers was used to
generate the definitions present in this version of this crate.
The primary purpose is using these definitions to create requests
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.
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 libary or are concerned about build-times, consider disabling some of the default features.
The default feature set includes:
The available features are:
functions. This might be of interest for server implementations, which need to deserialize the client's requests, but is otherwise not required.
Debugfor the generated code.
TryFrom<Enum> for Type.
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.
This struct represents an unparsed blob, which should not be deserialized as a bytes string. Used by functions returning generic objects which pass the underlying result without any modification or interpretation.
This struct represents the concrete type of a vector, that is,
The schema layer from which the definitions were generated.
This trait allows for data serialized according to the Binary Data Serialization to be deserialized into concrete instances.
Anything implementing this trait is identifiable by both ends (client-server) when performing Remote Procedure Calls (RPC) and transmission of objects.
Structures implementing this trait indicate that they are suitable for use to perform Remote Procedure Calls (RPC), and know what the type of the response will be.
This trait allows for concrete instances to be serialized into binary data as specified by the Binary Data Serialization.