tulpje_framework/context/
modal_context.rs1use std::sync::Arc;
2
3use twilight_http::Client;
4use twilight_model::{
5 application::interaction::modal::ModalInteractionData,
6 gateway::payload::incoming::InteractionCreate,
7 id::{Id, marker::ApplicationMarker},
8};
9use twilight_standby::Standby;
10
11use super::Context;
12use crate::Metadata;
13
14#[derive(Clone, Debug)]
15pub struct ModalContext<T: Clone + Send + Sync> {
16 pub meta: Metadata,
17 pub application_id: Id<ApplicationMarker>,
18 pub services: Arc<T>,
19 pub client: Arc<Client>,
20 pub standby: Arc<Standby>,
21
22 pub event: InteractionCreate,
23 pub data: ModalInteractionData,
24}
25
26impl<T: Clone + Send + Sync> ModalContext<T> {
27 pub fn from_context(
28 ctx: Context<T>,
29 meta: Metadata,
30 event: InteractionCreate,
31 data: ModalInteractionData,
32 ) -> Self {
33 Self {
34 application_id: ctx.application_id,
35 client: ctx.client,
36 services: ctx.services,
37 standby: ctx.standby,
38
39 meta,
40 data,
41 event,
42 }
43 }
44}