Trait swc_common::comments::Comments [−][src]
pub trait Comments {}Show 13 methods
fn add_leading(&self, pos: BytePos, cmt: Comment); fn add_leading_comments(&self, pos: BytePos, comments: Vec<Comment>); fn has_leading(&self, pos: BytePos) -> bool; fn move_leading(&self, from: BytePos, to: BytePos); fn take_leading(&self, pos: BytePos) -> Option<Vec<Comment>>; fn get_leading(&self, pos: BytePos) -> Option<Vec<Comment>>; fn add_trailing(&self, pos: BytePos, cmt: Comment); fn add_trailing_comments(&self, pos: BytePos, comments: Vec<Comment>); fn has_trailing(&self, pos: BytePos) -> bool; fn move_trailing(&self, from: BytePos, to: BytePos); fn take_trailing(&self, pos: BytePos) -> Option<Vec<Comment>>; fn get_trailing(&self, pos: BytePos) -> Option<Vec<Comment>>; fn add_pure_comment(&self, pos: BytePos);
Expand description
Stores comment.
Implementation notes
Methods uses (&self)
instead of (&mut self)
for some reasons. Firstly,
this is similar to the previous api. Secondly, typescript parser requires
backtracking, which requires Clone. To avoid cloning large vectors, we
must use Rc<RefCell(&self)
allows multi-threaded
use-cases such as swc itself.
We use Option instead of no-op Comments implementation to avoid allocation unless required.