57 Commits

Author SHA1 Message Date
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
Jonas Platte
a68b854734
api: Refactor macro code and improve error handling
* Inline lots of methods that were only used once
* Create a separate error case for missing headers
2021-04-10 14:50:01 +02:00
Jonas Platte
20124cb215
api-macros: Small formatting fixes 2021-04-09 19:34:03 +02:00
Abhik Jain
455eb31c74
api-macros: Turn request codegen helper functions into methods 2021-04-09 19:28:33 +02:00
Akshay
06a2a27a99
api: Check http method in try_from_http_request 2021-04-09 17:21:05 +02:00
Jonas Platte
afec9f0fbf
api-macros: Generate cleaner code 2021-04-05 22:16:46 +02:00
Jonas Platte
345d0cf990
api-macros: Allow ruma_api! invocation without request / response 2021-04-05 14:49:40 +02:00
Jonas Platte
95fef0b0ec
api-macros: Make helper functions private 2021-04-05 14:13:49 +02:00
Jonas Platte
7cb7e6a211
api-macros: Move most parts of api and util into more specific modules 2021-04-05 14:05:43 +02:00
Jonas Platte
1878e8aae0
Replace some turbofishes with type annotations 2021-04-05 13:13:28 +02:00
Jonas Platte
536a8aea1b
api-macros: Replace ToTokens implementations with inherent methods 2021-04-05 12:57:50 +02:00
Jonas Platte
2e0f787ccd
api-macros: Refactor parsing logic 2021-04-05 12:39:22 +02:00
Jonas Platte
e8e0ceb17d
api-macros: Move some helper functions from util to api::parse 2021-04-05 12:18:54 +02:00
Jonas Platte
1dd6a3870a
Use mem::take instead of mem::replace where applicable 2021-04-05 12:08:29 +02:00
Jonas Platte
679508f831
api-macros: Move parsing logic into a separate module 2021-04-05 12:07:34 +02:00
Jonas Platte
4ced423612
Fix new clippy warnings 2021-03-01 18:38:41 +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
ae6595339c
Stop stripping serde attributes
To still prevent 'unknown attribute' errors, the attribute is registered
using a dummy derive macro where needed.
2020-12-13 11:54:39 +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
5175d3d622
api_macros: Improve readability, fix lines >100 chars 2020-11-27 23:06:31 +01:00
Jonas Platte
a6ff054ba3
api-macros: Refactor metadata parsing
* duplicate field assignment will now raise an error
* parsing should now be faster (though it probably doesn't matter)
* the code is now split into more independent parts
2020-11-27 21:44:59 +01:00
Jonas Platte
4d9fdeb61d
api-macros: Remove RawResponse 2020-11-27 21:15:37 +01:00
Jonas Platte
05249c6cdb
api-macros: Remove RawRequest 2020-11-27 21:15:37 +01:00
Jonas Platte
00ae067bce
api-macros: Remove RawMetadata 2020-11-27 21:15:37 +01:00
Devin Ragotzy
c15382ca41
api-macros: Make Response header fields override any defaults 2020-11-01 14:04:34 +01:00
Jonas Platte
e1975c2035
Be more consistent about whitespace 2020-10-24 00:44:01 +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
133056c524
api-macros: Small improvements to request building code 2020-09-17 21:46:46 +02:00
Jonas Platte
67d113ba57
api: Add non_exhaustive attribute to request and reponse types through the macro 2020-09-11 21:01:02 +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
Devin Ragotzy
906465d0c3
Replace all ::ruma_api:: with the discovered crate name or $crate 2020-08-12 14:01:43 +02:00
Devin Ragotzy
6877c2f38d Use ruma_api crate from ruma or if renamed or not in crate prelude 2020-08-10 23:49:14 +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
1fbf05d71f
Fix some bad formatting 2020-08-08 21:52:58 +02:00
Jonas Platte
0366466792
Use toplevel imports in ruma_api! expansion 2020-08-08 21:23:07 +02:00
Devin Ragotzy
e783288ef0 Limit when RequestQuery impls Deserialize and impl Outgoing 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
f67744bb4f Throw error if query_map has any ref types 2020-08-07 00:48:01 +02:00
Devin Ragotzy
0793724264 Refactor to use Req/ResLifetimes struct for adding lifetimes to req/res 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
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
b68b63ab8d Remove runtime panic caused by header <-> string conversion 2020-07-28 17:13:33 -04:00