Fix main & improve cursor sync (#101)
This commit is contained in:
parent
81b81e30ff
commit
a36a24effc
36 changed files with 926 additions and 686 deletions
|
|
@ -47,7 +47,7 @@ impl Cursors {
|
|||
all_device_cursors.retain(|c| &c.client_cursors.device_id != device_id);
|
||||
all_device_cursors.push(ClientCursorsWithTimeToLive::new(ClientCursors {
|
||||
user_name,
|
||||
device_id: device_id.to_string(),
|
||||
device_id: device_id.clone(),
|
||||
documents_with_cursors: document_to_cursors,
|
||||
}));
|
||||
|
||||
|
|
@ -126,5 +126,7 @@ impl ClientCursorsWithTimeToLive {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn is_expired(&self, ttl: Duration) -> bool { self.last_updated.elapsed() > ttl }
|
||||
pub fn is_expired(&self, ttl: Duration) -> bool {
|
||||
self.last_updated.elapsed() > ttl
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ pub struct StoredDocumentVersion {
|
|||
}
|
||||
|
||||
impl PartialEq<Self> for StoredDocumentVersion {
|
||||
fn eq(&self, other: &Self) -> bool { self.vault_update_id == other.vault_update_id }
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
self.vault_update_id == other.vault_update_id
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(TS, Debug, Clone, Serialize)]
|
||||
|
|
|
|||
|
|
@ -23,8 +23,13 @@ pub struct CursorPositionFromClient {
|
|||
|
||||
#[derive(TS, Serialize, Deserialize, Clone, Debug)]
|
||||
pub struct DocumentWithCursors {
|
||||
#[ts(as = "u32")]
|
||||
pub vault_update_id: VaultUpdateId,
|
||||
// It's None in case the document is dirty.
|
||||
// We still want to sync the cursor to mark
|
||||
// that it exists and can be client-side
|
||||
// interpolated. However, the actual
|
||||
// position is meaningless.
|
||||
#[ts(as = "Option<u32>")]
|
||||
pub vault_update_id: Option<VaultUpdateId>,
|
||||
|
||||
pub document_id: DocumentId,
|
||||
pub relative_path: String,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue