Files
galaxy/app/src/drive/items/ai_fact_collection.rs
T

74 lines
1.6 KiB
Rust

use warpui::{elements::MouseStateHandle, AppContext, Element};
use crate::{
appearance::Appearance,
cloud_object::CloudObjectMetadata,
drive::{index::DriveIndexAction, DriveObjectType},
server::ids::ClientId,
themes::theme::Fill,
};
use super::{WarpDriveItem, WarpDriveItemId};
#[derive(Clone)]
pub struct WarpDriveAIFactCollection {
id: ClientId,
}
impl WarpDriveAIFactCollection {
pub fn new(id: ClientId) -> Self {
Self { id }
}
pub fn id(&self) -> ClientId {
self.id
}
}
impl WarpDriveItem for WarpDriveAIFactCollection {
fn display_name(&self) -> Option<String> {
Some("Rules".to_string())
}
fn metadata(&self) -> Option<&CloudObjectMetadata> {
None
}
fn object_type(&self) -> Option<DriveObjectType> {
Some(DriveObjectType::AIFactCollection)
}
fn secondary_icon(&self, _color: Option<Fill>) -> Option<Box<dyn Element>> {
None
}
fn click_action(&self) -> Option<DriveIndexAction> {
Some(DriveIndexAction::OpenAIFactCollection)
}
fn preview(&self, _appearance: &Appearance) -> Option<Box<dyn Element>> {
None
}
fn warp_drive_id(&self) -> WarpDriveItemId {
WarpDriveItemId::AIFactCollection
}
fn sync_status_icon(
&self,
_sync_queue_is_dequeueing: bool,
_hover_state: MouseStateHandle,
_appearance: &Appearance,
) -> Option<Box<dyn Element>> {
None
}
fn action_summary(&self, _app: &AppContext) -> Option<String> {
None
}
fn clone_box(&self) -> Box<dyn WarpDriveItem> {
Box::new(self.clone())
}
}