#![allow(
clippy::as_conversions,
clippy::cast_sign_loss,
clippy::cast_possible_truncation,
clippy::module_name_repetitions,
clippy::missing_docs_in_private_items,
clippy::fallible_impl_from,
clippy::struct_excessive_bools
)]
use twilight_model::{
channel::stage_instance::PrivacyLevel, gateway::presence::Status, user::PremiumType,
};
pub mod activity;
pub mod attachment;
pub mod channel;
pub mod current_user;
pub mod embed;
pub mod emoji;
pub mod guild;
pub mod member;
pub mod message;
pub mod permission_overwrite;
pub mod presence;
pub mod reaction;
pub mod role;
pub mod stage_instance;
pub mod sticker;
pub const fn status_as_i16(status: Status) -> i16 {
match status {
Status::DoNotDisturb => 0,
Status::Idle => 1,
Status::Invisible => 2,
Status::Offline => 3,
Status::Online => 4,
}
}
pub const fn status_from_i16(repr: i16) -> Status {
match repr {
0 => Status::DoNotDisturb,
1 => Status::Idle,
2 => Status::Invisible,
3 => Status::Offline,
4 => Status::Online,
_ => panic!("The given integer is too big to represent Status"),
}
}
pub const fn premium_type_from_i16(repr: i16) -> PremiumType {
match repr {
0 => PremiumType::None,
1 => PremiumType::NitroClassic,
2 => PremiumType::Nitro,
_ => panic!("The given integer is too big to represent PremiumType"),
}
}
pub const fn privacy_level_from_i16(repr: i16) -> PrivacyLevel {
match repr {
0 => PrivacyLevel::GuildOnly,
_ => panic!("The given integer is too big to represent PrivacyLevel"),
}
}