git.delta.rocks / jrsonnet / refs/commits / 432b17211316

difftreelog

source

crates/jsonnet-parser/src/string_processing.rs683 Bsourcehistory
1/// Returns string with stripped line padding characters2pub fn deent(input: &str) -> String {3	if input.is_empty() {4		return "".to_owned();5	}6	let min_ident = input7		.split('\n')8		.filter(|s| !s.is_empty())9		.map(|ss| ss.chars().take_while(|c| *c == ' ').count())10		.min()11		.unwrap();12	input13		.split('\n')14		.map(|s| s.chars().skip(min_ident).collect::<String>())15		.collect::<Vec<String>>()16		.join("\n")17}1819#[cfg(test)]20pub mod tests {21	use super::*;22	#[test]23	fn deent_tests() {24		assert_eq!(deent("  aaa"), "aaa");25		assert_eq!(deent("  aaa\n bbb"), " aaa\nbbb");26		assert_eq!(deent(" aaa\n  bbb"), "aaa\n bbb");27		assert_eq!(deent(" aaa\n\n  bbb"), "aaa\n\n bbb");28	}29}