Expand description
SDK client entrypoint and request preparation helpers.
§Design Philosophy
This module implements a TypeState pattern for the SDK builder, ensuring
that the transport layer is always configured before the SDK can be used.
The FerriskeySdk<T> type is parameterized by the transport, making
invalid states unrepresentable at compile time.
§Architecture
FerriskeySdkBuilder<Unconfigured>
│
▼ .transport(transport)
FerriskeySdkBuilder<Configured<T>>
│
▼ .build()
FerriskeySdk<T>§tower::Service Integration
The SDK accepts any Transport (which is a blanket impl over
tower::Service<SdkRequest>), enabling middleware composition:
use ferriskey_sdk::{AuthStrategy, FerriskeySdk, HpxTransport, SdkConfig};
let config = SdkConfig::new("https://api.example.com", AuthStrategy::None);
let transport = HpxTransport::default();
let sdk = FerriskeySdk::builder(config).transport(transport).build();Structs§
- Configured
- TypeState: transport has been configured.
- Ferriskey
Sdk - FerrisKey SDK entrypoint parameterized by a transport implementation.
- Ferriskey
SdkBuilder - Typed builder for
FerriskeySdkwith compile-time validation. - Operation
Call - Generated operation entrypoint bound to a specific SDK instance.
- Operation
Input - Caller-provided request input for a generated FerrisKey operation.
- Operation
Input Builder - Fluent builder for
OperationInput. - TagClient
- Tag-scoped SDK view over the generated operation registry.
- Unconfigured
- TypeState: transport has not been configured yet.
Traits§
- SdkExt
- Extension trait for convenient SDK construction.