// @generated by jacquard-lexicon. DO NOT EDIT. // // Lexicon: network.bsky.jetstream.getSegment // // This file was automatically generated from Lexicon schemas. // Any manual changes will be overwritten on the next regeneration. #[allow(unused_imports)] use alloc::collections::BTreeMap; #[allow(unused_imports)] use core::marker::PhantomData; use jacquard_common::deps::bytes::Bytes; use jacquard_common::deps::smol_str::SmolStr; use jacquard_common::types::value::Data; use jacquard_common::{BosStr, CowStr, DefaultStr, FromStaticStr}; use jacquard_derive::{IntoStatic, open_union}; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)] #[serde( rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr") )] pub struct GetSegment { pub name: S, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)] #[serde(rename_all = "camelCase")] pub struct GetSegmentOutput { pub body: Bytes, } #[derive( Serialize, Deserialize, Debug, Clone, PartialEq, Eq, thiserror::Error, miette::Diagnostic, )] #[serde(tag = "error", content = "message")] pub enum GetSegmentError { #[serde(rename = "SegmentNotFound")] SegmentNotFound(#[serde(skip_serializing_if = "Option::is_none")] Option), /// Catch-all for unknown error codes. #[serde(untagged)] Other { error: SmolStr, #[serde(skip_serializing_if = "Option::is_none")] message: Option, }, } impl core::fmt::Display for GetSegmentError { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Self::SegmentNotFound(msg) => { write!(f, "SegmentNotFound")?; if let Some(msg) = msg { write!(f, ": {}", msg)?; } Ok(()) } Self::Other { error, message } => { write!(f, "{}", error)?; if let Some(msg) = message { write!(f, ": {}", msg)?; } Ok(()) } } } } /** Response marker for the `network.bsky.jetstream.getSegment` query. Implements `jacquard_common::xrpc::XrpcResp`; successful bodies decode as `Self::Output`, which is `GetSegmentOutput` for this endpoint.*/ pub struct GetSegmentResponse; impl jacquard_common::xrpc::XrpcResp for GetSegmentResponse { const NSID: &'static str = "network.bsky.jetstream.getSegment"; const ENCODING: &'static str = "application/octet-stream"; type Output = GetSegmentOutput; type Err = GetSegmentError; fn encode_output( output: &Self::Output, ) -> Result, jacquard_common::xrpc::EncodeError> where Self::Output: Serialize, { Ok(output.body.to_vec()) } fn decode_output<'de, S>( body: &'de [u8], ) -> Result, jacquard_common::error::DecodeError> where S: BosStr + Deserialize<'de>, Self::Output: Deserialize<'de>, { Ok(GetSegmentOutput { body: jacquard_common::deps::bytes::Bytes::copy_from_slice(body), }) } } impl jacquard_common::xrpc::XrpcRequest for GetSegment { const NSID: &'static str = "network.bsky.jetstream.getSegment"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Response = GetSegmentResponse; } /** Endpoint marker for the `network.bsky.jetstream.getSegment` query. Path: `/xrpc/network.bsky.jetstream.getSegment`. The request payload type is `GetSegment`; send that request with `jacquard::Client` or use this marker through lower-level `XrpcEndpoint` APIs.*/ pub struct GetSegmentRequest; impl jacquard_common::xrpc::XrpcEndpoint for GetSegmentRequest { const PATH: &'static str = "/xrpc/network.bsky.jetstream.getSegment"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Request = GetSegment; type Response = GetSegmentResponse; } pub mod get_segment_state { pub use crate::builder_types::{IsSet, IsUnset, Set, Unset}; #[allow(unused)] use ::core::marker::PhantomData; mod sealed { pub trait Sealed {} } /// State trait tracking which required fields have been set pub trait State: sealed::Sealed { type Name; } /// Empty state - all required fields are unset pub struct Empty(()); impl sealed::Sealed for Empty {} impl State for Empty { type Name = Unset; } ///State transition - sets the `name` field to Set pub struct SetName(PhantomData St>); impl sealed::Sealed for SetName {} impl State for SetName { type Name = Set; } /// Marker types for field names #[allow(non_camel_case_types)] pub mod members { ///Marker type for the `name` field pub struct name(()); } } /// Builder for constructing an instance of this type. pub struct GetSegmentBuilder { _state: PhantomData St>, _fields: (Option,), _type: PhantomData S>, } impl GetSegment { /// Create a new builder for this type, using the default string type (DefaultStr = SmolStr) if needed pub fn new() -> GetSegmentBuilder { GetSegmentBuilder::new() } } impl GetSegment { /// Create a new builder for this type pub fn builder() -> GetSegmentBuilder { GetSegmentBuilder::builder() } } impl GetSegmentBuilder { /// Create a new builder with all fields unset, using the default string type, if needed pub fn new() -> Self { GetSegmentBuilder { _state: PhantomData, _fields: (None,), _type: PhantomData, } } } impl GetSegmentBuilder { /// Create a new builder with all fields unset pub fn builder() -> Self { GetSegmentBuilder { _state: PhantomData, _fields: (None,), _type: PhantomData, } } } impl GetSegmentBuilder where St: get_segment_state::State, St::Name: get_segment_state::IsUnset, { /// Set the `name` field (required) pub fn name( mut self, value: impl Into, ) -> GetSegmentBuilder, S> { self._fields.0 = Option::Some(value.into()); GetSegmentBuilder { _state: PhantomData, _fields: self._fields, _type: PhantomData, } } } impl GetSegmentBuilder where St: get_segment_state::State, St::Name: get_segment_state::IsSet, { /// Build the final struct. pub fn build(self) -> GetSegment { GetSegment { name: self._fields.0.unwrap(), } } }