Something went wrong. Try again.
atproto made easy crates.io/crates/jacquard
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221// @generated by jacquard-lexicon. DO NOT EDIT.//// Lexicon: tools.ozone.queue.createQueue//// 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;
use crate::tools_ozone::queue::QueueView;#[allow(unused_imports)]use core::marker::PhantomData;use jacquard_common::deps::smol_str::SmolStr;use jacquard_common::types::string::Nsid;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, Default)]#[serde( rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr"))]pub struct CreateQueue<S: BosStr = DefaultStr> { /// Collection name for record subjects. Required if subjectTypes includes 'record'. #[serde(skip_serializing_if = "Option::is_none")] pub collection: Option<Nsid<S>>, /// Optional description of the queue #[serde(skip_serializing_if = "Option::is_none")] pub description: Option<S>, /// Display name for the queue (must be unique) pub name: S, /// Policy keys to recommend when actioning reports in this queue #[serde(skip_serializing_if = "Option::is_none")] pub recommended_policies: Option<Vec<S>>, /// Report reason types (fully qualified NSIDs) #[serde(skip_serializing_if = "Option::is_none")] pub report_types: Option<Vec<S>>, /// Subject types this queue accepts #[serde(skip_serializing_if = "Option::is_none")] pub subject_types: Option<Vec<CreateQueueSubjectTypes<S>>>, #[serde(flatten, default, skip_serializing_if = "Option::is_none")] pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]pub enum CreateQueueSubjectTypes<S: BosStr = DefaultStr> { Account, Record, Message, Conversation, Other(S),}
impl<S: BosStr> CreateQueueSubjectTypes<S> { pub fn as_str(&self) -> &str { match self { Self::Account => "account", Self::Record => "record", Self::Message => "message", Self::Conversation => "conversation", Self::Other(s) => s.as_ref(), } } /// Construct from a string-like value, matching known values. pub fn from_value(s: S) -> Self { match s.as_ref() { "account" => Self::Account, "record" => Self::Record, "message" => Self::Message, "conversation" => Self::Conversation, _ => Self::Other(s), } }}
impl<S: BosStr> core::fmt::Display for CreateQueueSubjectTypes<S> { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "{}", self.as_str()) }}
impl<S: BosStr> AsRef<str> for CreateQueueSubjectTypes<S> { fn as_ref(&self) -> &str { self.as_str() }}
impl<S: BosStr> Serialize for CreateQueueSubjectTypes<S> { fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error> where Ser: serde::Serializer, { serializer.serialize_str(self.as_str()) }}
impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for CreateQueueSubjectTypes<S> { fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de>, { let s = S::deserialize(deserializer)?; Ok(Self::from_value(s)) }}
impl<S: BosStr + Default> Default for CreateQueueSubjectTypes<S> { fn default() -> Self { Self::Other(Default::default()) }}
impl<S: BosStr> jacquard_common::IntoStatic for CreateQueueSubjectTypes<S>where S: BosStr + jacquard_common::IntoStatic, S::Output: BosStr,{ type Output = CreateQueueSubjectTypes<S::Output>; fn into_static(self) -> Self::Output { match self { CreateQueueSubjectTypes::Account => CreateQueueSubjectTypes::Account, CreateQueueSubjectTypes::Record => CreateQueueSubjectTypes::Record, CreateQueueSubjectTypes::Message => CreateQueueSubjectTypes::Message, CreateQueueSubjectTypes::Conversation => CreateQueueSubjectTypes::Conversation, CreateQueueSubjectTypes::Other(v) => CreateQueueSubjectTypes::Other(v.into_static()), } }}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]#[serde( rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr"))]pub struct CreateQueueOutput<S: BosStr = DefaultStr> { pub queue: QueueView<S>, #[serde(flatten, default, skip_serializing_if = "Option::is_none")] pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,}
#[derive( Serialize, Deserialize, Debug, Clone, PartialEq, Eq, thiserror::Error, miette::Diagnostic,)]#[serde(tag = "error", content = "message")]pub enum CreateQueueError { /// One or more recommended policy keys do not exist in the configured policy list #[serde(rename = "InvalidRecommendedPolicies")] InvalidRecommendedPolicies(#[serde(skip_serializing_if = "Option::is_none")] Option<SmolStr>), /// The queue configuration conflicts with an existing queue #[serde(rename = "ConflictingQueue")] ConflictingQueue(#[serde(skip_serializing_if = "Option::is_none")] Option<SmolStr>), /// Catch-all for unknown error codes. #[serde(untagged)] Other { error: SmolStr, #[serde(skip_serializing_if = "Option::is_none")] message: Option<SmolStr>, },}
impl core::fmt::Display for CreateQueueError { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Self::InvalidRecommendedPolicies(msg) => { write!(f, "InvalidRecommendedPolicies")?; if let Some(msg) = msg { write!(f, ": {}", msg)?; } Ok(()) } Self::ConflictingQueue(msg) => { write!(f, "ConflictingQueue")?; 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 `tools.ozone.queue.createQueue` procedure.
Implements `jacquard_common::xrpc::XrpcResp`; successful bodies decode as `Self::Output<S>`, which is `CreateQueueOutput<S>` for this endpoint.*/pub struct CreateQueueResponse;impl jacquard_common::xrpc::XrpcResp for CreateQueueResponse { const NSID: &'static str = "tools.ozone.queue.createQueue"; const ENCODING: &'static str = "application/json"; type Output<S: BosStr> = CreateQueueOutput<S>; type Err = CreateQueueError;}
impl<S: BosStr> jacquard_common::xrpc::XrpcRequest for CreateQueue<S> { const NSID: &'static str = "tools.ozone.queue.createQueue"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure("application/json"); type Response = CreateQueueResponse;}
/** Endpoint marker for the `tools.ozone.queue.createQueue` procedure.
Path: `/xrpc/tools.ozone.queue.createQueue`. The request payload type is `CreateQueue<S>`; send that request with `jacquard::Client` or use this marker through lower-level `XrpcEndpoint` APIs.*/pub struct CreateQueueRequest;impl jacquard_common::xrpc::XrpcEndpoint for CreateQueueRequest { const PATH: &'static str = "/xrpc/tools.ozone.queue.createQueue"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure("application/json"); type Request<S: BosStr> = CreateQueue<S>; type Response = CreateQueueResponse;}