pub struct Rawfile {
pub plots: Vec<Plot>,
pub warnings: Vec<String>,
}Expand description
A parsed rawfile: one or more plots, in file order.
Fields§
§plots: Vec<Plot>§warnings: Vec<String>Non-fatal reader diagnostics (unknown flags, bad attributes…), mirroring the warnings the 3f5 reader prints to stderr.
Implementations§
Source§impl Rawfile
impl Rawfile
Sourcepub fn parse(bytes: &[u8]) -> Result<Self, Error>
pub fn parse(bytes: &[u8]) -> Result<Self, Error>
Parse a rawfile from bytes (ASCII or binary data sections).
Sourcepub fn read_from(path: impl AsRef<Path>) -> Result<Self, Error>
pub fn read_from(path: impl AsRef<Path>) -> Result<Self, Error>
Read and parse a rawfile from disk.
Examples found in repository?
examples/recode.rs (line 16)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let mut args = std::env::args().skip(1);
8 let (Some(input), Some(output), Some(fmt)) = (args.next(), args.next(), args.next()) else {
9 return Err("usage: recode <in.raw> <out.raw> ascii|binary".into());
10 };
11 let format = match fmt.as_str() {
12 "ascii" => Format::Ascii,
13 "binary" => Format::Binary,
14 other => return Err(format!("unknown format {other:?}").into()),
15 };
16 let raw = Rawfile::read_from(&input)?;
17 for w in &raw.warnings {
18 eprintln!("warning: {w}");
19 }
20 let mut out = std::fs::File::create(&output)?;
21 raw.write(&mut out, format)?;
22 Ok(())
23}Sourcepub fn write(&self, w: &mut impl Write, format: Format) -> Result<()>
pub fn write(&self, w: &mut impl Write, format: Format) -> Result<()>
Write every plot, back to back, as the 3f5 raw_write would.
Examples found in repository?
examples/recode.rs (line 21)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let mut args = std::env::args().skip(1);
8 let (Some(input), Some(output), Some(fmt)) = (args.next(), args.next(), args.next()) else {
9 return Err("usage: recode <in.raw> <out.raw> ascii|binary".into());
10 };
11 let format = match fmt.as_str() {
12 "ascii" => Format::Ascii,
13 "binary" => Format::Binary,
14 other => return Err(format!("unknown format {other:?}").into()),
15 };
16 let raw = Rawfile::read_from(&input)?;
17 for w in &raw.warnings {
18 eprintln!("warning: {w}");
19 }
20 let mut out = std::fs::File::create(&output)?;
21 raw.write(&mut out, format)?;
22 Ok(())
23}Trait Implementations§
impl StructuralPartialEq for Rawfile
Auto Trait Implementations§
impl Forget for Rawfile
impl Freeze for Rawfile
impl Move for Rawfile
impl RefUnwindSafe for Rawfile
impl Send for Rawfile
impl Sync for Rawfile
impl Unpin for Rawfile
impl UnsafeUnpin for Rawfile
impl UnwindSafe for Rawfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more