#![cfg_attr(
not(test),
deny(clippy::unwrap_used, clippy::expect_used, clippy::panic)
)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
pub mod canvas;
pub mod drive;
pub mod kanban;
pub mod messaging;
pub mod sync;
pub use canvas::{
CanvasElement, CanvasInfo, CanvasSnapshot, CanvasState, ElementType, HistoryActionType,
HistoryEntry, Layer, OfflineOperation, OfflineStatus, OperationType, Point, RemoteCursor,
ToolType, Transform,
};
pub use drive::{
DirectoryEntry, DiskInfo, DiskType, DownloadProgress, DownloadState, FileMetadata, FilePreview,
QuotaInfo, UploadProgress, UploadState,
};
pub use kanban::{
ActivityEntry, AttachmentView, BoardSettings, BoardSummary, BoardView, CardDetail, CardState,
CardView, ChecklistProgress, ColumnView, CommentView, PriorityView, StepView, SwimlaneMode,
TagView,
};
pub use messaging::{
ContactWithPresence, Message, MessageReaction, MessageSendStatus, PendingMessage,
PresenceStatus, SearchResult, ThreadSummary,
};
pub use sync::{SyncMetadata, SyncProgress, SyncState, SyncSummary};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SampleWords {
words: String,
}
impl SampleWords {
pub fn new(words: impl Into<String>) -> Self {
Self {
words: words.into(),
}
}
pub fn as_str(&self) -> &str {
self.words.as_str()
}
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct UnifiedIdentity {
pub display_name: String,
pub four_words: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum OrganizationCategory {
Organization,
Community,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum UnifiedEntityType {
Organization,
Project,
Group,
Channel,
Person,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct UnifiedEntity {
pub id: String,
pub entity_type: UnifiedEntityType,
pub name: String,
pub description: String,
pub member_count: u64,
pub parent_id: Option<String>,
pub category: Option<OrganizationCategory>,
}
impl UnifiedEntity {
pub fn is_personal_group(&self) -> bool {
matches!(self.entity_type, UnifiedEntityType::Group) && self.parent_id.is_none()
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct UnifiedContact {
pub id: String,
pub display_name: String,
pub status: String,
pub presence: PresenceStatus,
}