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