randy-model
is custom version of twilight-model
for randy.
It define the Discord APIs with few convenience methods on top of them.
These are in a single crate for ease of use, a single point of definition, and a sort of versioning of the Discord API. Similar to how a database schema progresses in versions, the definition of the API also progresses in versions.
The types in this crate are reproducible: deserializing a payload into a type, serializing it, and then deserializing it again will work.
Defined are a number of modules defining types returned by or owned by
resource categories. For example, gateway
are types used to interact with
and returned by the gateway API. guild
contains types owned by the Guild
resource category. These types may be directly returned by, built on top of,
or extended by other crates.
Some models have associated builders, which can be found in the
randy-tools
crate.