40 lines
807 B
Rust
Raw Normal View History

2022-08-18 16:19:50 +08:00
use crate::core::{DocumentOperation, DocumentTree};
2022-08-17 16:48:45 +08:00
pub struct Transaction {
pub operations: Vec<DocumentOperation>,
}
2022-08-18 16:19:50 +08:00
impl Transaction {
fn new(operations: Vec<DocumentOperation>) -> Transaction {
Transaction {
operations,
}
}
}
pub struct TransactionBuilder<'a> {
document: &'a DocumentTree,
2022-08-17 16:48:45 +08:00
operations: Vec<DocumentOperation>,
}
2022-08-18 16:19:50 +08:00
impl<'a> TransactionBuilder<'a> {
pub fn new(document: &'a DocumentTree) -> TransactionBuilder {
TransactionBuilder {
document,
operations: Vec::new()
}
2022-08-17 16:48:45 +08:00
}
pub fn push(&mut self, op: DocumentOperation) {
self.operations.push(op);
}
pub fn finalize(self) -> Transaction {
Transaction {
operations: self.operations,
}
}
}