implement Clone for Editor

This commit is contained in:
JL710 2024-07-10 13:43:39 +02:00 committed by Jeremy Soller
parent 0e2d050a8d
commit 05374aa34d
2 changed files with 11 additions and 1 deletions

View file

@ -16,7 +16,7 @@ use crate::{
};
/// A wrapper of [`Buffer`] for easy editing
#[derive(Debug)]
#[derive(Debug, Clone)]
pub struct Editor<'buffer> {
buffer_ref: BufferRef<'buffer>,
cursor: Cursor,

View file

@ -71,6 +71,16 @@ pub enum BufferRef<'buffer> {
Arc(Arc<Buffer>),
}
impl<'buffer> Clone for BufferRef<'buffer> {
fn clone(&self) -> Self {
match self {
Self::Owned(buffer) => Self::Owned(buffer.clone()),
Self::Borrowed(buffer) => Self::Owned((*buffer).to_owned()),
Self::Arc(buffer) => Self::Arc(buffer.clone()),
}
}
}
impl<'buffer> From<Buffer> for BufferRef<'buffer> {
fn from(buffer: Buffer) -> Self {
Self::Owned(buffer)