implement Clone for Editor
This commit is contained in:
parent
0e2d050a8d
commit
05374aa34d
2 changed files with 11 additions and 1 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue