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
pub struct Comment<'a> { comment: &'a str, prefix: &'a str, } impl<'a> Comment<'a> { pub fn new(comment: &'a str, prefix: &'a str) -> Self { Self { comment, prefix } } pub fn to_string(&self, offset: usize) -> String { self.comment .split("\n") .map(|line| { let mut line = line.to_string(); if !line.is_empty() { line = format!(" {}", line); } format!( "{spaces}{prefix}{line}", spaces = " ".repeat(offset), prefix = self.prefix, line = line ) }) .collect::<Vec<_>>() .join("\n") } }