Skip to main content

zephyrus/
lib.rs

1#![doc = include_str!("../README.md")]
2
3mod parse_impl;
4
5pub mod argument;
6pub mod builder;
7pub mod command;
8pub mod context;
9pub mod error;
10pub mod framework;
11pub mod group;
12pub mod hook;
13pub mod iter;
14pub mod modal;
15pub mod parse;
16pub mod range;
17pub mod wait;
18
19// Items used to extract generics from functions, not public API.
20#[doc(hidden)]
21pub mod extract;
22
23pub use zephyrus_macros as macros;
24
25type BoxFuture<'a, T> = std::pin::Pin<Box<dyn std::future::Future<Output = T> + Send + 'a>>;
26
27/// Useful exports to get started quickly
28pub mod prelude {
29    pub use crate::{
30        builder::{FrameworkBuilder, WrappedClient},
31        context::{AutocompleteContext, Focused, SlashContext},
32        error::*,
33        framework::{DefaultCommandResult, Framework},
34        modal::*,
35        parse::{Parse, ParseError},
36        range::Range,
37    };
38    pub use async_trait::async_trait;
39    pub use zephyrus_macros::*;
40}
41
42#[doc(hidden)]
43pub mod twilight_exports {
44    pub use twilight_http::{
45        client::{Client, InteractionClient},
46        request::application::interaction::UpdateResponse,
47        response::DeserializeBodyError
48    };
49    pub use twilight_model::{
50        application::{
51            command::{Command, CommandOption, CommandOptionChoice, CommandOptionChoiceValue, CommandOptionType, CommandType},
52            interaction::{
53                application_command::{CommandData, CommandDataOption, CommandOptionValue, CommandInteractionDataResolved},
54                modal::ModalInteractionData,
55                message_component::MessageComponentInteractionData,
56                Interaction, InteractionData, InteractionType,
57            },
58        },
59        channel::{Message, message::{Component, component::{ActionRow, TextInput, TextInputStyle}}},
60        gateway::payload::incoming::InteractionCreate,
61        guild::Permissions,
62        http::interaction::{
63            InteractionResponse, InteractionResponseData, InteractionResponseType,
64        },
65        id::{
66            marker::{
67                ApplicationMarker, AttachmentMarker, ChannelMarker, GenericMarker, GuildMarker,
68                MessageMarker, RoleMarker, UserMarker,
69            },
70            Id,
71        },
72    };
73}