From 0ffb44e8cb8fed331adcc3d6475903e9bec34f51 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 29 Oct 2022 11:47:27 +0200 Subject: [PATCH] Bring path and tools up to date --- implementations/rust/preserves-path/src/parse.rs | 3 +-- implementations/rust/preserves-path/src/step.rs | 6 ++++-- .../rust/preserves-tools/src/bin/preserves-tool.rs | 10 +++------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/implementations/rust/preserves-path/src/parse.rs b/implementations/rust/preserves-path/src/parse.rs index 00efff6..03c1ad5 100644 --- a/implementations/rust/preserves-path/src/parse.rs +++ b/implementations/rust/preserves-path/src/parse.rs @@ -209,8 +209,7 @@ fn parse_comparison( impl path::Selector { pub fn from_str(env: &Env, s: &str) -> Result { parse_selector(env, &(BytesBinarySource::new(s.as_bytes()) - .text_iovalues() - .configured(false) + .text().iovalues().read_annotations(false) .collect::, _>>()?)) } } diff --git a/implementations/rust/preserves-path/src/step.rs b/implementations/rust/preserves-path/src/step.rs index caef8d6..f62cfe5 100644 --- a/implementations/rust/preserves-path/src/step.rs +++ b/implementations/rust/preserves-path/src/step.rs @@ -220,8 +220,10 @@ impl Step for AxisStep { _ => self.step.accept(ctxt, &IOValue::new(0)), }, path::Axis::Annotations => - for c in value.annotations().slice() { - self.step.accept(ctxt, &c) + if let Some(anns) = value.annotations() { + for c in anns.iter() { + self.step.accept(ctxt, &c) + } }, path::Axis::Embedded => if let Some(d) = value.value().as_embedded() { self.step.accept(ctxt, d) diff --git a/implementations/rust/preserves-tools/src/bin/preserves-tool.rs b/implementations/rust/preserves-tools/src/bin/preserves-tool.rs index ce90fec..ec21e60 100644 --- a/implementations/rust/preserves-tools/src/bin/preserves-tool.rs +++ b/implementations/rust/preserves-tools/src/bin/preserves-tool.rs @@ -7,18 +7,16 @@ use clap::Clap; use clap::IntoApp; use clap_generate::{generate, generators}; +use preserves::value::BinarySource; use preserves::value::IOBinarySource; use preserves::value::IOValue; use preserves::value::IOValueDomainCodec; use preserves::value::NestedValue; -use preserves::value::PackedReader; use preserves::value::PackedWriter; use preserves::value::Reader; use preserves::value::Set; -use preserves::value::TextReader; use preserves::value::TextWriter; use preserves::value::Value; -use preserves::value::ViaCodec; use preserves::value::Writer; use preserves::value::text::writer::CommaStyle; @@ -352,16 +350,14 @@ impl ValueStream { InputFormat::Binary => return Err(io::Error::new( io::ErrorKind::InvalidData, "Expected binary input, saw text input")), } - TextReader::new(&mut self.source, ViaCodec::new(IOValueDomainCodec)) - .next(self.read_annotations)? + self.source.text().next(self.read_annotations)? } else { match self.input_format { InputFormat::AutoDetect | InputFormat::Binary => (), InputFormat::Text => return Err(io::Error::new( io::ErrorKind::InvalidData, "Expected text input, saw binary input")), } - PackedReader::new(&mut self.source, IOValueDomainCodec) - .next(self.read_annotations)? + self.source.packed().next(self.read_annotations)? }; match maybe_value {