+85
CHANGELOG.md
+85
CHANGELOG.md
···
···+- For raw data, `Response::parse_data()` gives validated loosely-typed atproto data, while `Response::parse_raw()` gives the raw values, with minimal validation.+- Removed #[async_trait] attribute macro usage in favour of `impl Future` return types with manual bounds.+- Union variant collision detection: when multiple namespaces have similar type names, foreign ones get prefixed (e.g., `Images` vs `BskyImages`)+- `from_data`, `from_raw_data`, `to_data`, and `to_raw_data` to serialize to and deserialize from the loosely typed value data formats. Particularly useful for second-stage deserialization of type "unknown" fields in lexicons, such as `PostView.record`.+- Methods to extract the output from an XRPC response now behave well with respect to lifetimes and borrowing.+- Now possible to use jacquard types in places like axum extractors due to lifetime improvements+- Union variants don't collide when multiple namespaces define similar types and another namespace includes them
+2
-2
Cargo.lock
+2
-2
Cargo.lock
-1
crates/jacquard-api/Cargo.toml
-1
crates/jacquard-api/Cargo.toml
+101
-1
crates/jacquard-common/src/xrpc.rs
+101
-1
crates/jacquard-common/src/xrpc.rs
······
······+/// NOTE: If the response is an error, it will still parse as the matching error type for the request.+/// NOTE: If the response is an error, it will still parse as the matching error type for the request.+pub fn parse_raw<'s>(&'s self) -> Result<RawData<'s>, XrpcError<<Resp as XrpcResp>::Err<'s>>> {
+1
-1
crates/jacquard-identity/Cargo.toml
+1
-1
crates/jacquard-identity/Cargo.toml
+4
-3
crates/jacquard-lexicon/src/codegen.rs
+4
-3
crates/jacquard-lexicon/src/codegen.rs
······-writeln!(&mut output, "# Each namespace feature automatically enables its dependencies").unwrap();···-let mut ns_to_feature: std::collections::HashMap<&str, String> = std::collections::HashMap::new();
·········
+1
-1
crates/jacquard-oauth/Cargo.toml
+1
-1
crates/jacquard-oauth/Cargo.toml