Merge branch 'main' into user-timeline
This commit is contained in:
commit
d3b9eca791
50 changed files with 3076 additions and 1109 deletions
|
@ -172,7 +172,7 @@ message JoinProjectResponse {
|
|||
|
||||
message Accept {
|
||||
uint32 replica_id = 1;
|
||||
repeated Worktree worktrees = 2;
|
||||
repeated WorktreeMetadata worktrees = 2;
|
||||
repeated Collaborator collaborators = 3;
|
||||
repeated LanguageServer language_servers = 4;
|
||||
}
|
||||
|
@ -199,6 +199,7 @@ message UpdateWorktree {
|
|||
repeated Entry updated_entries = 4;
|
||||
repeated uint64 removed_entries = 5;
|
||||
uint64 scan_id = 6;
|
||||
bool is_last_update = 7;
|
||||
}
|
||||
|
||||
message UpdateWorktreeExtensions {
|
||||
|
@ -776,15 +777,6 @@ message User {
|
|||
string avatar_url = 3;
|
||||
}
|
||||
|
||||
message Worktree {
|
||||
uint64 id = 1;
|
||||
string root_name = 2;
|
||||
repeated Entry entries = 3;
|
||||
repeated DiagnosticSummary diagnostic_summaries = 4;
|
||||
bool visible = 5;
|
||||
uint64 scan_id = 6;
|
||||
}
|
||||
|
||||
message File {
|
||||
uint64 worktree_id = 1;
|
||||
optional uint64 entry_id = 2;
|
||||
|
|
|
@ -5,6 +5,7 @@ use futures::{SinkExt as _, StreamExt as _};
|
|||
use prost::Message as _;
|
||||
use serde::Serialize;
|
||||
use std::any::{Any, TypeId};
|
||||
use std::{cmp, iter, mem};
|
||||
use std::{
|
||||
fmt::Debug,
|
||||
io,
|
||||
|
@ -392,6 +393,31 @@ impl From<Nonce> for u128 {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn split_worktree_update(
|
||||
mut message: UpdateWorktree,
|
||||
max_chunk_size: usize,
|
||||
) -> impl Iterator<Item = UpdateWorktree> {
|
||||
let mut done = false;
|
||||
iter::from_fn(move || {
|
||||
if done {
|
||||
return None;
|
||||
}
|
||||
|
||||
let chunk_size = cmp::min(message.updated_entries.len(), max_chunk_size);
|
||||
let updated_entries = message.updated_entries.drain(..chunk_size).collect();
|
||||
done = message.updated_entries.is_empty();
|
||||
Some(UpdateWorktree {
|
||||
project_id: message.project_id,
|
||||
worktree_id: message.worktree_id,
|
||||
root_name: message.root_name.clone(),
|
||||
updated_entries,
|
||||
removed_entries: mem::take(&mut message.removed_entries),
|
||||
scan_id: message.scan_id,
|
||||
is_last_update: done && message.is_last_update,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue