1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Core Lexe API definitions, types and traits.
//!
//! # Notes on API types
//!
//! ## Query parameters
//!
//! When serializing data as query parameters, we have to wrap newtypes in these
//! structs (instead of e.g. using UserPk directly), otherwise `serde_qs` errors
//! with "top-level serializer supports only maps and structs."
//!
//! ## `serde(flatten)`
//!
//! Also beware when using `#[serde(flatten)]` on a field. All inner fields must
//! be string-ish types (&str, String, Cow<'_, str>, etc...) OR use
//! `SerializeDisplay` and `DeserializeFromStr` from `serde_with`.
//!
//! This issue is due to a limitation in serde. See:
//! <https://github.com/serde-rs/serde/issues/1183>
/// Enclave CLI args and types.
/// Traits defining Lexe's various APIs.
/// API error types.
// TODO(max): This will be replaced by LexeError
/// Macros for API clients/servers.
/// API request and response types unique to a specific endpoint.
/// API types shared across multiple endpoints.
/// Lexe's VFS ("virtual file system") trait and associated types.
/// Axum helpers which must live in `lexe_api_core` because its dependents do.