1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//! Stringに関連した機能
/// 文字列の各行をインデントする
pub trait AddIndent {
/// 文字列の各行をインデントした結果を返す
///
/// # Arguments
/// * `sz` - インデントの回数
fn add_indent(&self, sz:u32) -> String;
}
impl AddIndent for String {
fn add_indent(&self, sz:u32) -> String {
let lines = self.replace("\r\n","\n");
let lines = lines.split("\n");
lines.map(|s| format!("{}{}", (0..sz)
.map(|_| String::from(" "))
.collect::<Vec<String>>().join(""), s))
.collect::<Vec<String>>().join("\n")
}
}