feat(fs): add lines to reader
All checks were successful
Rust / build (map[name:nightly]) (push) Successful in 2m8s
Rust / build (map[name:stable]) (push) Successful in 3m54s
Release Please / Release-plz (push) Successful in 1m33s

This commit is contained in:
Paul Campbell 2024-11-01 20:50:20 +00:00
parent 587d60ee3d
commit 6f95c04eb6
2 changed files with 21 additions and 1 deletions

View file

@ -1,5 +1,5 @@
// //
use std::{fmt::Display, path::Path}; use std::{fmt::Display, path::Path, str::Lines};
use crate::fs::Result; use crate::fs::Result;
@ -15,6 +15,10 @@ impl ReaderReal {
pub fn as_str(&self) -> &str { pub fn as_str(&self) -> &str {
&self.contents &self.contents
} }
pub fn lines(&self) -> Lines<'_> {
self.contents.lines()
}
} }
impl Display for ReaderReal { impl Display for ReaderReal {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {

View file

@ -114,6 +114,22 @@ mod file {
Ok(()) Ok(())
} }
#[test]
fn read_file_lines() -> TestResult {
let fs = fs::temp().expect("temp fs");
let path = fs.base().join("foo");
let mut file = fs.file(&path);
file.write("line 1\nline 2").expect("write");
let reader = file.reader().expect("reader");
let lines = reader.lines().collect::<Vec<_>>();
assert_eq!(lines, vec!["line 1", "line 2"]);
Ok(())
}
} }
mod dir_create { mod dir_create {