pub struct EditorSnapshot {
pub version: u32,
pub mode: SnapshotMode,
pub cursor: (u32, u32),
pub lines: Vec<String>,
pub viewport_top: u32,
}Expand description
Coarse editor snapshot suitable for serde round-tripping.
Today’s shape is intentionally minimal — it carries only the bits
the runtime crate::Editor knows how to round-trip without the
trait extraction (mode, cursor, lines, viewport top, settings).
Once Editor<B: Buffer, H: Host> ships under phase 5, this struct
grows to cover full SPEC state: registers, marks, jump list, change
list, undo tree, full options.
Hosts that persist editor state between sessions should:
- Treat the snapshot as opaque. Don’t manually mutate fields.
- Always check
versionafter deserialization; reject on mismatch rather than attempt migration. The 0.0.x churn drops compatibility freely.
Fields§
§version: u32Format version. Bumped on every structural change. Hosts use this to detect mismatched persisted state.
mode: SnapshotModeMode at snapshot time (status-line granularity).
cursor: (u32, u32)Cursor (row, col) in byte indexing.
lines: Vec<String>Buffer lines. Trailing \n not included.
viewport_top: u32Viewport top line at snapshot time.
Implementations§
Trait Implementations§
Source§impl Clone for EditorSnapshot
impl Clone for EditorSnapshot
Source§fn clone(&self) -> EditorSnapshot
fn clone(&self) -> EditorSnapshot
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EditorSnapshot
impl Debug for EditorSnapshot
Source§impl<'de> Deserialize<'de> for EditorSnapshot
impl<'de> Deserialize<'de> for EditorSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for EditorSnapshot
impl PartialEq for EditorSnapshot
Source§fn eq(&self, other: &EditorSnapshot) -> bool
fn eq(&self, other: &EditorSnapshot) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for EditorSnapshot
impl Serialize for EditorSnapshot
impl Eq for EditorSnapshot
impl StructuralPartialEq for EditorSnapshot
Auto Trait Implementations§
impl Freeze for EditorSnapshot
impl RefUnwindSafe for EditorSnapshot
impl Send for EditorSnapshot
impl Sync for EditorSnapshot
impl Unpin for EditorSnapshot
impl UnsafeUnpin for EditorSnapshot
impl UnwindSafe for EditorSnapshot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more