first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
pub mod persistence;
|
||||
|
||||
use ai::document::AIDocumentId;
|
||||
use cloud_objects::cloud_object::{
|
||||
GenericCloudObject, GenericServerObject, ObjectType, ServerObjectModel,
|
||||
};
|
||||
use cloud_objects::ids::{ServerId, SyncId};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// Serialized representation of a notebook for sync queue
|
||||
/// The AIDocumentID and ConversationID are stored here to avoid polluting the
|
||||
/// generic CreateObjectRequest type.
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct SerializedNotebook {
|
||||
pub data: String,
|
||||
pub ai_document_id: Option<String>,
|
||||
pub conversation_id: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct CloudNotebookModel {
|
||||
pub title: String,
|
||||
pub data: String,
|
||||
pub ai_document_id: Option<AIDocumentId>,
|
||||
/// This is the server-generated conversation token, not the client-side AIConversationId.
|
||||
pub conversation_id: Option<String>,
|
||||
}
|
||||
|
||||
impl ServerObjectModel for CloudNotebookModel {
|
||||
fn object_type(&self) -> ObjectType {
|
||||
ObjectType::Notebook
|
||||
}
|
||||
}
|
||||
|
||||
/// This is the notebook_id in the database associated with this notebook.
|
||||
#[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Serialize, Deserialize, Hash)]
|
||||
pub struct NotebookId(ServerId);
|
||||
cloud_objects::server_id_traits! { NotebookId, "Notebook" }
|
||||
|
||||
impl From<NotebookId> for SyncId {
|
||||
fn from(id: NotebookId) -> Self {
|
||||
Self::ServerId(id.into())
|
||||
}
|
||||
}
|
||||
|
||||
/// `CloudNotebook` is a notebook retrieved from the server.
|
||||
pub type CloudNotebook = GenericCloudObject<NotebookId, CloudNotebookModel>;
|
||||
pub type ServerNotebook = GenericServerObject<NotebookId, CloudNotebookModel>;
|
||||
Reference in New Issue
Block a user