update chars_take
This commit is contained in:
parent
e813ad3d39
commit
cd7fc75b67
26
src/misc.rs
26
src/misc.rs
@ -343,15 +343,25 @@ pub fn step_helper(max_i: usize, min_x: &f64, step: &f64) -> Vec<f64> {
|
|||||||
pub fn chars_take(chars: &[char], take: usize) -> String {
|
pub fn chars_take(chars: &[char], take: usize) -> String {
|
||||||
let len = chars.len();
|
let len = chars.len();
|
||||||
assert!(len >= take);
|
assert!(len >= take);
|
||||||
if take == len {
|
|
||||||
// return `chars` turned into a string if `take == len`
|
|
||||||
return chars.iter().collect::<String>();
|
|
||||||
} else if take == 0 {
|
|
||||||
// return empty string if `take == 0`
|
|
||||||
return String::new();
|
|
||||||
}
|
|
||||||
|
|
||||||
chars.iter().rev().take(take).rev().collect::<String>()
|
match take {
|
||||||
|
0 => {
|
||||||
|
// return empty string if `take == 0`
|
||||||
|
return String::new();
|
||||||
|
}
|
||||||
|
1 => {
|
||||||
|
// return last character as a string if take == 1
|
||||||
|
return chars[len].to_string();
|
||||||
|
}
|
||||||
|
_ if take == len => {
|
||||||
|
// return `chars` turned into a string if `take == len`
|
||||||
|
return chars.iter().collect::<String>();
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
// actually do the thing
|
||||||
|
return chars.iter().rev().take(take).rev().collect::<String>();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user