1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
use crate::source::buffer::Input; use crate::source::Range; #[derive(Debug, Clone, PartialEq)] pub enum CommentType { Inline, Document, Unknown, } #[derive(Debug, Clone)] pub struct Comment { pub location: Range, pub kind: CommentType, } impl Comment { pub fn new(location: Range, input: &Input) -> Self { let kind = match location.source(input) { Some(source) => { if source.starts_with('#') { CommentType::Inline } else if source.starts_with("=begin") { CommentType::Document } else { CommentType::Unknown } } None => CommentType::Unknown, }; Self { location, kind } } }