insert_ext.rs 580 B

123456789101112131415161718192021
  1. use crate::{
  2. client::view::InsertExt,
  3. core::{attributes_at_index, Attributes, AttributesIter, Builder, Delta, Interval},
  4. };
  5. pub struct PreserveInlineStyleExt {}
  6. impl PreserveInlineStyleExt {
  7. pub fn new() -> Self { Self {} }
  8. }
  9. impl InsertExt for PreserveInlineStyleExt {
  10. fn apply(&self, delta: &Delta, text: &str, index: usize) -> Delta {
  11. let attributes = attributes_at_index(delta, index);
  12. let mut delta = Delta::new();
  13. let insert = Builder::insert(text).attributes(attributes).build();
  14. delta.add(insert);
  15. delta
  16. }
  17. }