Offload text::Buffer construction to background worker

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
This commit is contained in:
Julia 2023-05-02 11:01:59 -04:00
parent 7e06062bdb
commit 1883e260ce
3 changed files with 16 additions and 17 deletions

View file

@ -357,20 +357,6 @@ impl Buffer {
)
}
pub fn from_file<T: Into<String>>(
replica_id: ReplicaId,
base_text: T,
diff_base: Option<T>,
file: Arc<dyn File>,
cx: &mut ModelContext<Self>,
) -> Self {
Self::build(
TextBuffer::new(replica_id, cx.model_id() as u64, base_text.into()),
diff_base.map(|h| h.into().into_boxed_str().into()),
Some(file),
)
}
pub fn from_proto(
replica_id: ReplicaId,
message: proto::BufferState,
@ -460,7 +446,11 @@ impl Buffer {
self
}
fn build(buffer: TextBuffer, diff_base: Option<String>, file: Option<Arc<dyn File>>) -> Self {
pub fn build(
buffer: TextBuffer,
diff_base: Option<String>,
file: Option<Arc<dyn File>>,
) -> Self {
let saved_mtime = if let Some(file) = file.as_ref() {
file.mtime()
} else {