mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-27 11:53:30 +04:00
26 lines
678 B
Rust
26 lines
678 B
Rust
|
pub struct Change {
|
||
|
from: usize,
|
||
|
to: usize,
|
||
|
insert: Option<String>,
|
||
|
}
|
||
|
|
||
|
impl Change {
|
||
|
pub fn new(from: usize, to: usize, insert: Option<String>) {
|
||
|
// old_extent, new_extent, insert
|
||
|
}
|
||
|
}
|
||
|
|
||
|
pub struct Transaction {}
|
||
|
|
||
|
// ChangeSpec = Change | ChangeSet | Vec<Change>
|
||
|
// ChangeDesc as a ChangeSet without text: can't be applied, cheaper to store.
|
||
|
// ChangeSet = ChangeDesc with Text
|
||
|
pub struct ChangeSet {
|
||
|
// basically Vec<ChangeDesc> where ChangeDesc = (current len, replacement len?)
|
||
|
// (0, n>0) for insertion, (n>0, 0) for deletion, (>0, >0) for replacement
|
||
|
sections: Vec<(usize, isize)>,
|
||
|
}
|
||
|
//
|
||
|
// trait Transaction
|
||
|
// trait StrictTransaction
|