Jonas Platte
c1693569f1
api: Replace bytes::Buf by AsRef<u8> for reading
...
This allows us to switch back to serde_json::from_slice instead of
serde_json::from_reader, because the latter is significantly slower.
See https://github.com/serde-rs/json/issues/160
2021-04-13 22:12:16 +02:00
Jonas Platte
a774771fc9
Remove verbose error types from tests
2021-04-13 14:14:27 +02:00
Jonas Platte
6585aeb628
api: Make OutgoingResponse a supertrait of EndpointError
2021-04-13 13:15:57 +02:00
Jonas Platte
0e197aae0b
api: Update try_from_http_request to be generic like try_from_http_response
2021-04-12 20:38:22 +02:00
Jonas Platte
23ba0bc164
api-macros: Refactor request code generation
2021-04-12 20:38:22 +02:00
Jonas Platte
b122dcc135
api: Introduce OutgoingResponse trait
2021-04-12 20:38:22 +02:00
Jonas Platte
6f5c1ee953
api: Stop storing the http::Request in RequestDeserializationError
2021-04-12 20:38:22 +02:00
Jonas Platte
2ac020173b
api: Introduce IncomingResponse trait
2021-04-12 20:38:22 +02:00
Jonas Platte
effb53444d
api: Stop storing the http::Response in ResponseDeserializationError
2021-04-12 20:38:22 +02:00
Johannes Becker
dbc6bb29d0
api: Add trait OutgoingRequestAppserviceExt
...
Provides the method `try_into_http_request_with_user_id`.
2021-04-12 13:30:04 +02:00
Jonas Platte
c523fa0f74
Use ruma_api::try_deserialize in manual endpoint implementations
2021-04-05 22:33:05 +02:00
Jonas Platte
345d0cf990
api-macros: Allow ruma_api! invocation without request / response
2021-04-05 14:49:40 +02:00
Jonas Platte
e843ccdb90
ruma-api: Force client and server Cargo features to always be on
2021-03-09 19:58:36 +01:00
Akshay
4d51e98707
Introduce client
and server
feature flags for *-api crates
2021-03-05 16:00:35 +01:00
Akshay
1c0dab5a47
api: Allow cfg attributes on rate_limited and authentication metadata fields
2021-02-05 12:47:43 +01:00
Akshay
b087cf75b7
Set the default Content-Type for requests to application/json
2021-01-22 17:39:06 +01:00
Jonas Platte
95d21552e0
Use a dedicated method for conversion from http::Request to Ruma request types
2020-12-13 12:59:21 +01:00
Jonas Platte
5562a23aaa
Move Raw, Outgoing and all macro code from ruma-common to ruma-serde
2020-11-28 03:45:39 +01:00
Jonas Platte
8ccf0f128b
Normalize formatting of empty curly braces
2020-11-27 23:07:32 +01:00
Devin Ragotzy
c15382ca41
api-macros: Make Response header fields override any defaults
2020-11-01 14:04:34 +01:00
Devin Ragotzy
b3196d7f64
Enforce public visibility of all fields of structs deriving Outgoing
2020-10-03 11:39:32 +02:00
Jonas Platte
fdd326edf7
Move Outgoing from ruma-api to ruma-common
...
The derive macro moves from ruma-api-macros to a new ruma-common-macros
crate likewise.
2020-09-22 21:35:10 +02:00
Vincent Lee
d36d005b97
Change requires_authentication: bool
to authentication: AuthScheme
2020-09-18 16:28:51 +02:00
Jonas Platte
01c7eef72f
Consistently put an empty line after inner module docs
2020-08-24 21:42:48 +02:00
Devin Ragotzy
a8b4bad684
Support optional header values in request/response types
2020-08-21 19:53:46 +02:00
Jonas Platte
30a0a39d2b
Outgoing derive: Replace incoming_no_deserialize with incoming_derive(!Deserialize)
2020-08-17 22:08:56 +02:00
Devin Ragotzy
a6c1b8f0bd
Parse and emit attributes connected to the request/response defs in ruma_api macro
2020-08-14 00:01:19 +02:00
Jonas Platte
987d48666c
Split Endpoint trait into OutgoingRequest, IncomingRequest
2020-08-12 23:33:27 +02:00
Jonas Platte
abc34eeb7e
Move manual endpoint impl test into its own file
2020-08-12 23:33:27 +02:00
Devin Ragotzy
f455d4c8ab
Remove Response lifetime generation code in ruma_api macro
...
… and enforce that there are no lifetimes in response {}
2020-08-09 03:01:19 +02:00
Jonas Platte
a0a1987bbf
Small style fix
2020-08-09 00:01:50 +02:00
Jonas Platte
0366466792
Use toplevel imports in ruma_api! expansion
2020-08-08 21:23:07 +02:00
Jonas Platte
c2cf8682e6
Don't use * imports in ruma_api_lifetime test
2020-08-08 13:23:57 +02:00
Devin Ragotzy
7e3ebff089
Add tests testing failing Outgoing derive for query fields
2020-08-07 00:48:01 +02:00
Devin Ragotzy
4e2f1a19e1
Fix typo and rename copy_lifetime_ident -> collect_lifetime_ident
2020-08-07 00:48:01 +02:00
Devin Ragotzy
588a6035f0
Use Outgoing trait in ruma_api_lifetime tests
2020-08-07 00:48:01 +02:00
Devin Ragotzy
2beaf450a3
Add a query_map field to ruma_api! lifetime test
2020-08-07 00:48:01 +02:00
Devin Ragotzy
c980644d77
Clean up and fix missing comma for request query map
2020-08-07 00:48:01 +02:00
Devin Ragotzy
f0a5a43455
Move lifetime tests into their own file
2020-08-07 00:48:01 +02:00
Devin Ragotzy
e7f7c3bb9d
Add lifetime params to Request/Response when needed
2020-08-07 00:48:01 +02:00
Devin Ragotzy
c2342e3ef7
Add failing test to ruma-api for lifetimes in ruma_api! macro
2020-08-07 00:48:01 +02:00
Jonas Platte
9bc6ce9201
Use identifier macros for tests
2020-08-05 00:12:44 +02:00
Devin Ragotzy
2fbdd674ab
Refactor impl_outgoing_with_incoming_self and add struct variant
2020-08-01 18:19:17 +02:00
Devin Ragotzy
f0fb9a69c0
Handle enums and nested types properly
2020-08-01 18:19:17 +02:00
Jonas Platte
10184cb9ca
Use a dedicated method for conversion from Ruma request type to http::Request
2020-08-01 01:01:15 +02:00
Devin Ragotzy
c86f0b106b
Re-add the Outgoing trait and derive macro
...
The Outgoing trait now has no attributes except incoming_no_deserialize,
it looks for any references and lifetimes in a struct declaration and
removes them. The point of the Outgoing trait is to allow references to
be serialized and owned values to come out of deserialization. It has no
ability to wrap values in Raw (then EventResult).
2020-07-31 12:59:19 -04:00
Devin Ragotzy
71e537d123
Move move-value test decl into logical mods for each
2020-07-29 08:50:08 -04:00
Devin Ragotzy
47b6adb524
Add tests for ruma_api! macro ensuring request/response generation ok
2020-07-28 18:55:02 -04:00
Devin Ragotzy
f00bad3895
Add try_build test testing new type body fields are declared last
2020-07-28 17:13:33 -04:00
skim
b260a13d4b
move and rename ruma_events::json::EventJson to ruma_common::raw::Raw
2020-07-16 07:31:36 -07:00