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")
	}
}