Skip to main content

ass_editor/commands/macros/
position_macros.rs

1//! Position-oriented fluent editing macro (`at_pos!`).
2
3/// Fluent API macro for position operations
4///
5/// # Examples
6///
7/// ```
8/// use ass_editor::{EditorDocument, Position, at_pos};
9///
10/// let mut doc = EditorDocument::from_content("Hello world!").unwrap();
11///
12/// // Note: at_pos! macro doesn't exist in the current implementation
13/// // Using direct methods instead
14/// doc.insert(Position::new(5), " beautiful").unwrap();
15/// assert_eq!(doc.text(), "Hello beautiful world!");
16/// ```
17#[macro_export]
18macro_rules! at_pos {
19    ($doc:expr, $pos:expr, insert $text:expr) => {
20        $doc.at($crate::Position::new($pos)).insert_text($text)
21    };
22
23    ($doc:expr, $pos:expr, replace $len:expr, $text:expr) => {
24        $doc.at($crate::Position::new($pos))
25            .replace_text($len, $text)
26    };
27
28    ($doc:expr, $pos:expr, delete $len:expr) => {
29        $doc.at($crate::Position::new($pos)).delete_range($len)
30    };
31}