diff --git a/ruma-api/tests/outgoing.rs b/ruma-api/tests/outgoing.rs index 41e8aa1c..b1c101e1 100644 --- a/ruma-api/tests/outgoing.rs +++ b/ruma-api/tests/outgoing.rs @@ -13,24 +13,65 @@ pub struct IncomingThing { t: T, } -#[derive(Outgoing)] -#[incoming_no_deserialize] -pub struct Request<'a, T> { - pub abc: &'a str, - pub thing: Thing<'a, T>, - pub device_id: &'a ::ruma_identifiers::DeviceId, - pub user_id: &'a UserId, - pub bytes: &'a [u8], - pub recursive: &'a [Thing<'a, T>], - pub option: Option<&'a [u8]>, +#[allow(unused)] +#[derive(Copy, Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct OtherThing<'t> { + some: &'t str, + t: &'t [u8], } -#[derive(Outgoing)] -#[incoming_no_deserialize] -pub enum EnumThing<'a, T> { - Abc(&'a str), - Stuff(Thing<'a, T>), - Boxy(&'a ::ruma_identifiers::DeviceId), - Other(Option<&'a str>), - StructVar { stuff: &'a str, more: &'a ::ruma_identifiers::ServerName }, +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct IncomingOtherThing { + some: String, + t: Vec, } + +use ruma_api::ruma_api; + +ruma_api! { + metadata: { + description: "Does something.", + method: GET, + name: "no_fields", + path: "/_matrix/my/endpoint/:thing", + rate_limited: false, + requires_authentication: false, + } + + request: { + #[ruma_api(query)] + pub abc: &'a str, + #[ruma_api(path)] + pub thing: &'a str, + #[ruma_api(header = CONTENT_TYPE)] + pub stuff: &'a str, + } + + response: { + pub body: &'a str, + pub thing: OtherThing<'a>, + pub stuff: &'a [u8], + } +} + +// #[derive(Outgoing)] +// #[incoming_no_deserialize] +// pub struct Request<'a, T> { +// pub abc: &'a str, +// pub thing: Thing<'a, T>, +// pub device_id: &'a ::ruma_identifiers::DeviceId, +// pub user_id: &'a UserId, +// pub bytes: &'a [u8], +// pub recursive: &'a [Thing<'a, T>], +// pub option: Option<&'a [u8]>, +// } + +// #[derive(Outgoing)] +// #[incoming_no_deserialize] +// pub enum EnumThing<'a, T> { +// Abc(&'a str), +// Stuff(Thing<'a, T>), +// Boxy(&'a ::ruma_identifiers::DeviceId), +// Other(Option<&'a str>), +// StructVar { stuff: &'a str, more: &'a ::ruma_identifiers::ServerName }, +// }