54 Commits

Author SHA1 Message Date
Kévin Commaille
b89a18fa16
client-api: Fix check warnings and tests with no feature enabled 2021-04-12 18:57:04 +02:00
Jonas Platte
345d0cf990
api-macros: Allow ruma_api! invocation without request / response 2021-04-05 14:49:40 +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
536a8aea1b
api-macros: Replace ToTokens implementations with inherent methods 2021-04-05 12:57:50 +02:00
Jonas Platte
679508f831
api-macros: Move parsing logic into a separate module 2021-04-05 12:07:34 +02:00
Jonas Platte
db18d938e0
api-macros: Refactor error type parsing 2021-04-05 11:42:07 +02:00
Jonas Platte
a0e8bb416b
Increase MSRV from 1.43 to 1.45 2021-03-21 20:32:46 +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
212153ea5f
Mark macro-generated trait implementations as #[automatically_derived] 2020-12-13 13:29:03 +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
ac4446ab5b
api-macros: Improve readability of expand_all 2020-12-13 12:28:48 +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
cc07d26af6
Allow empty request / response if all body parameters are optional 2020-12-06 22:33:27 +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
761aecbe4e
api-macros: Remove RawApi, some refactoring 2020-11-27 21:15:37 +01:00
Jonas Platte
183f427143
api-macros: Rename RawErrorType => ErrorType 2020-11-27 21:15:37 +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
Jonas Platte
187809cff5
api-macros: Export METADATA as a regular constant
Rather than just as an associated constant in trait implementations.
2020-11-27 21:15:32 +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
406b8501ac
Fix building on Rust 1.43.0 2020-09-29 22:12:56 +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
3d1ab0cd3f
api-macros: Fix docs for associated METADATA types 2020-09-11 21:09:55 +02:00
Devin Ragotzy
a8b4bad684
Support optional header values in request/response types 2020-08-21 19:53:46 +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
52f7546c47
Make most things in ruma_api::error actually public (no more #[doc(hidden)])
So people can implement their own endpoints without the macros and
without using undocumented parts of the API
2020-08-12 23:33:27 +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
98ddf25ae2 Allow the main ruma crate to re-export the ruma-api-macro things 2020-08-10 23:49:14 +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
Jonas Platte
9cf552f361
Add Endpoint::{IncomingRequest, IncomingResponse}
With these, it is no longer necessary to copy over the Endpoint trait's
where clauses whenever it is used as a bound
2020-08-09 03:18: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
Jonas Platte
ade12dec47
Fix inversion of NonAuthEndpoint implementations 2020-08-08 20:05:44 +02:00
Devin Ragotzy
588a6035f0 Use Outgoing trait in ruma_api_lifetime tests 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
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
f5c529bc36
Try not to rely on prelude in ruma-api-macros generated code
… and fix some lines that were too wide
2020-08-01 01:21:09 +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
Ragotzy.devin
4ff6c6ecbe
Refactor Request/Response's TryFrom impl by generating match stmt
... by moving repetitive parts into a macro_rules macro
2020-07-08 01:44:25 +02:00