diff options
Diffstat (limited to '')
-rw-r--r-- | vendor/nu-ansi-term/src/util.rs (renamed from vendor/ansi_term/src/util.rs) | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/vendor/ansi_term/src/util.rs b/vendor/nu-ansi-term/src/util.rs index ba0f12a02..a35020137 100644 --- a/vendor/ansi_term/src/util.rs +++ b/vendor/nu-ansi-term/src/util.rs @@ -1,27 +1,30 @@ -use display::*; +use crate::display::{AnsiString, AnsiStrings}; use std::ops::Deref; -/// Return a substring of the given ANSIStrings sequence, while keeping the formatting. -pub fn sub_string<'a>(start: usize, len: usize, strs: &ANSIStrings<'a>) -> Vec<ANSIString<'static>> { +/// Return a substring of the given AnsiStrings sequence, while keeping the formatting. +pub fn sub_string<'a>( + start: usize, + len: usize, + strs: &AnsiStrings<'a>, +) -> Vec<AnsiString<'static>> { let mut vec = Vec::new(); let mut pos = start; let mut len_rem = len; for i in strs.0.iter() { - let fragment = i.deref(); - let frag_len = fragment.len(); + let frag_len = i.string.len(); if pos >= frag_len { pos -= frag_len; continue; } - if len_rem <= 0 { + if len_rem == 0 { break; } let end = pos + len_rem; let pos_end = if end >= frag_len { frag_len } else { end }; - vec.push(i.style_ref().paint(String::from(&fragment[pos..pos_end]))); + vec.push(i.style_ref().paint(String::from(&i.string[pos..pos_end]))); if end <= frag_len { break; @@ -35,30 +38,29 @@ pub fn sub_string<'a>(start: usize, len: usize, strs: &ANSIStrings<'a>) -> Vec<A } /// Return a concatenated copy of `strs` without the formatting, as an allocated `String`. -pub fn unstyle(strs: &ANSIStrings) -> String { +pub fn unstyle(strs: &AnsiStrings) -> String { let mut s = String::new(); for i in strs.0.iter() { - s += &i.deref(); + s += i.string.deref(); } s } -/// Return the unstyled length of ANSIStrings. This is equaivalent to `unstyle(strs).len()`. -pub fn unstyled_len(strs: &ANSIStrings) -> usize { +/// Return the unstyled length of AnsiStrings. This is equaivalent to `unstyle(strs).len()`. +pub fn unstyled_len(strs: &AnsiStrings) -> usize { let mut l = 0; for i in strs.0.iter() { - l += i.deref().len(); + l += i.string.len(); } l } #[cfg(test)] mod test { - use Colour::*; - use display::*; use super::*; + use crate::Color::*; #[test] fn test() { @@ -67,15 +69,11 @@ mod test { Red.paint("-second"), White.paint("-third"), ]; - let a = ANSIStrings(&l); + let a = AnsiStrings(&l); assert_eq!(unstyle(&a), "first-second-third"); assert_eq!(unstyled_len(&a), 18); - let l2 = [ - Black.paint("st"), - Red.paint("-second"), - White.paint("-t"), - ]; - assert_eq!(sub_string(3, 11, &a).as_slice(), &l2); + let l2 = [Black.paint("st"), Red.paint("-second"), White.paint("-t")]; + assert_eq!(sub_string(3, 11, &a), l2); } } |