39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
#[cfg(not(target_family = "wasm"))]
|
|
pub mod persistence;
|
|
|
|
use cloud_objects::cloud_object::{
|
|
GenericCloudObject, GenericServerObject, ObjectType, ServerObjectModel,
|
|
};
|
|
use cloud_objects::ids::FolderId;
|
|
|
|
/// The model for a `CloudFolder`.
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CloudFolderModel {
|
|
pub name: String,
|
|
// TODO: since this is local only state, we should consider only surfacing it as part of the
|
|
// CloudViewModel. Right now, every server folder uses CloudFolderModel, which means it
|
|
// hardcodes a value of `false` for this property since it can't know what the local state is.
|
|
pub is_open: bool,
|
|
pub is_warp_pack: bool,
|
|
}
|
|
|
|
impl CloudFolderModel {
|
|
pub fn new(name: &str, is_warp_pack: bool) -> Self {
|
|
Self {
|
|
name: name.to_owned(),
|
|
is_open: false,
|
|
is_warp_pack,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl ServerObjectModel for CloudFolderModel {
|
|
fn object_type(&self) -> ObjectType {
|
|
ObjectType::Folder
|
|
}
|
|
}
|
|
|
|
/// `CloudFolder` is a folder retrieved from the server.
|
|
pub type CloudFolder = GenericCloudObject<FolderId, CloudFolderModel>;
|
|
pub type ServerFolder = GenericServerObject<FolderId, CloudFolderModel>;
|