///|
fn lines(text : String) -> Array[String] {
text.split("\n").map(fn(line) { line.to_owned() }).collect()
}
///|
fn basename(path : String) -> String {
let trimmed = path.trim_end(chars="/").to_owned()
match trimmed.rev_find("/") {
Some(index) => trimmed[index + 1:].to_owned()
None => trimmed
}
}
///|
fn value_after_prefix(line : String, prefix : String) -> String? {
if line.has_prefix(prefix) {
Some(line[prefix.length():].to_owned())
} else {
None
}
}