reasoninglayer 0.2.1

Rust client SDK for the Reasoning Layer API
Documentation
//! Namespace DTOs.

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum VisibilityDto {
    Public,
    Internal,
    Protected,
    Private,
    Restricted,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateRootNamespaceRequest {
    pub name: String,
    pub visibility: VisibilityDto,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateChildNamespaceRequest {
    pub path: String,
    pub visibility: VisibilityDto,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AddImportRequest {
    pub source_id: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AddExportRequest {
    pub symbol: String,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateMetadataRequest {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(default)]
    pub tags: Vec<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpdateVisibilityRequest {
    pub visibility: VisibilityDto,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NamespaceDto {
    pub id: String,
    pub name: String,
    pub path: String,
    pub visibility: VisibilityDto,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub parent_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(default)]
    pub tags: Vec<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NamespaceResponse {
    pub namespace: NamespaceDto,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NamespaceListResponse {
    #[serde(default)]
    pub namespaces: Vec<NamespaceDto>,
    #[serde(default)]
    pub count: u64,
}