xref: /DADK/dadk-user/src/utils/stdio.rs (revision 5129c63bfab60a54627def29dc1b53c722677e4e)
1 pub struct StdioUtils;
2 
3 impl StdioUtils {
4     /// # 将标准错误输出转换为行列表
5     pub fn stderr_to_lines(stderr: &[u8]) -> Vec<String> {
6         let stderr = String::from_utf8_lossy(stderr);
7         return stderr.lines().map(|s| s.to_string()).collect();
8     }
9 
10     /// 获取标准错误输出的最后n行, 以字符串形式返回.
11     /// 如果标准错误输出的行数小于n, 则返回所有行.
12     pub fn tail_n_str(lines: Vec<String>, n: usize) -> String {
13         let mut result = String::new();
14         let start = if lines.len() > n { lines.len() - n } else { 0 };
15         for line in lines.iter().skip(start) {
16             result.push_str(line);
17             result.push_str("\n");
18         }
19         return result;
20     }
21 }
22