-13
.claude/settings.local.json
-13
.claude/settings.local.json
-151
CLAUDE.md
-151
CLAUDE.md
···-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.-Jacquard is a suite of Rust crates for the AT Protocol (atproto/Bluesky). The project emphasizes spec-compliant, validated, performant baseline types with minimal boilerplate. Key design goals:-- **jacquard**: Main library crate with XRPC client and public API surface (re-exports jacquard-api and jacquard-common)-- **jacquard-common**: Core AT Protocol types (DIDs, handles, at-URIs, NSIDs, TIDs, CIDs, etc.) and the `CowStr` type for efficient string handling-- **jacquard-api**: Generated API bindings from lexicon schemas (implementation detail, not directly used by consumers)-cargo run -p jacquard-lexicon --bin jacquard-codegen -- -i <input_dir> -o <output_dir> [-r <root_module>]-cargo run -p jacquard-lexicon --bin jacquard-codegen -- -i crates/jacquard-lexicon/tests/fixtures/lexicons/atproto/lexicons -o crates/jacquard-api/src -r crate-- `new_static()`: Construct from `&'static str` using `SmolStr`/`CowStr`'s static constructor (no allocation)-- Generates structs with `#[lexicon]` attribute for forward compatibility (captures unknown fields in `extra_data`)-- Generates enums with `#[open_union]` attribute for handling unknown variants (unless marked `closed` in lexicon)-- **XrpcRequest trait**: Implemented directly on params/input structs (not marker types), with GATs for Output<'de> and Err<'de>-- **IntoStatic trait**: All generated types implement `IntoStatic` to convert borrowed types to owned ('static) variants-- ✅ Comprehensive validation tests for all core string types (handle, DID, NSID, TID, record key, AT-URI, datetime, language, identifier)-- ✅ Validated implementations against AT Protocol specs and TypeScript reference implementation-- ✅ String type interface standardization (Language now has `new_static()`, Datetime has full conversion traits)-- ✅ Data serialization: Full serialize/deserialize for `Data<'_>`, `Array`, `Object` with format-specific handling (JSON vs CBOR)-- ✅ Structured error types (ClientError, TransportError, EncodeError, DecodeError, HttpError, AuthError)-1. **Concrete HttpClient Implementation**: Implement HttpClient for reqwest::Client and potentially other HTTP clients-2. **Error Handling Improvements**: Add XRPC error parsing, better HTTP status code handling, structured error responses-5. **Lexicon Resolution**: Fetch lexicons from web sources (atproto authorities, git repositories) and parse into corpus-6. **Custom Lexicon Support**: Allow users to plug in their own generated lexicons alongside jacquard-api types in the client/server layer-7. **Public API**: Design the main API surface in `jacquard` that re-exports and wraps generated types
-120
regen.rs
-120
regen.rs
···