codex-mobile-contracts 0.3.4

Shared domain contracts for codex-mobile client and bridge.
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(default)]
pub struct DirectoryBookmarkItem {
    pub path: String,
    pub display_name: String,
    pub created_at_ms: i64,
    pub updated_at_ms: i64,
}

pub type DirectoryBookmarkRecord = DirectoryBookmarkItem;

#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(default)]
pub struct DirectoryHistoryItem {
    pub path: String,
    pub display_name: String,
    pub last_used_at_ms: i64,
    pub use_count: i64,
}

pub type DirectoryHistoryRecord = DirectoryHistoryItem;

#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(default)]
pub struct DirectoryEntry {
    pub name: String,
    pub path: String,
    pub is_directory: bool,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(default)]
pub struct DirectoryListing {
    pub path: String,
    pub parent_path: Option<String>,
    pub entries: Vec<DirectoryEntry>,
}