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
|
/// A wrapper of [`Buffer`] for easy editing
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Editor<'buffer> {
|
pub struct Editor<'buffer> {
|
||||||
buffer_ref: BufferRef<'buffer>,
|
buffer_ref: BufferRef<'buffer>,
|
||||||
cursor: Cursor,
|
cursor: Cursor,
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,16 @@ pub enum BufferRef<'buffer> {
|
||||||
Arc(Arc<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> {
|
impl<'buffer> From<Buffer> for BufferRef<'buffer> {
|
||||||
fn from(buffer: Buffer) -> Self {
|
fn from(buffer: Buffer) -> Self {
|
||||||
Self::Owned(buffer)
|
Self::Owned(buffer)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue