From 825d208198f9e1095d0c6a92430800e87bb71b50 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 19 Apr 2021 22:28:59 +0200 Subject: [PATCH] Introduce Cargo workspace in prep for schema --- implementations/rust/Cargo.toml | 29 +++--------------- implementations/rust/examples/known-data.bin | 1 - .../rust/examples/unknown-data.bin | 1 - implementations/rust/preserves/Cargo.toml | 25 +++++++++++++++ implementations/rust/{ => preserves}/Makefile | 0 .../rust/{ => preserves}/benches/.gitignore | 0 .../rust/{ => preserves}/benches/codec.rs | 16 +++++----- .../{ => preserves}/benches/testdata.bin.gz | Bin .../rust/{ => preserves}/examples/Makefile | 2 +- .../{ => preserves}/examples/extensibility.rs | 0 .../rust/preserves/examples/known-data.bin | 2 ++ .../{ => preserves}/examples/known-data.txt | 0 .../rust/preserves/examples/unknown-data.bin | 2 ++ .../{ => preserves}/examples/unknown-data.txt | 0 .../rust/{ => preserves}/src/de.rs | 0 .../rust/{ => preserves}/src/error.rs | 0 .../rust/{ => preserves}/src/lib.rs | 0 .../rust/{ => preserves}/src/ser.rs | 0 .../rust/{ => preserves}/src/set.rs | 0 .../rust/{ => preserves}/src/symbol.rs | 0 .../rust/{ => preserves}/src/value/de.rs | 0 .../rust/{ => preserves}/src/value/magic.rs | 0 .../rust/{ => preserves}/src/value/mod.rs | 0 .../src/value/packed/constants.rs | 0 .../{ => preserves}/src/value/packed/mod.rs | 0 .../src/value/packed/reader.rs | 0 .../src/value/packed/writer.rs | 0 .../rust/{ => preserves}/src/value/reader.rs | 0 .../rust/{ => preserves}/src/value/repr.rs | 0 .../rust/{ => preserves}/src/value/ser.rs | 0 .../src/value/signed_integer.rs | 0 .../rust/{ => preserves}/src/value/writer.rs | 0 .../rust/{ => preserves}/tests/samples/mod.rs | 0 .../{ => preserves}/tests/samples_tests.rs | 2 +- 34 files changed, 43 insertions(+), 37 deletions(-) delete mode 100644 implementations/rust/examples/known-data.bin delete mode 100644 implementations/rust/examples/unknown-data.bin create mode 100644 implementations/rust/preserves/Cargo.toml rename implementations/rust/{ => preserves}/Makefile (100%) rename implementations/rust/{ => preserves}/benches/.gitignore (100%) rename implementations/rust/{ => preserves}/benches/codec.rs (87%) rename implementations/rust/{ => preserves}/benches/testdata.bin.gz (100%) rename implementations/rust/{ => preserves}/examples/Makefile (53%) rename implementations/rust/{ => preserves}/examples/extensibility.rs (100%) create mode 100644 implementations/rust/preserves/examples/known-data.bin rename implementations/rust/{ => preserves}/examples/known-data.txt (100%) create mode 100644 implementations/rust/preserves/examples/unknown-data.bin rename implementations/rust/{ => preserves}/examples/unknown-data.txt (100%) rename implementations/rust/{ => preserves}/src/de.rs (100%) rename implementations/rust/{ => preserves}/src/error.rs (100%) rename implementations/rust/{ => preserves}/src/lib.rs (100%) rename implementations/rust/{ => preserves}/src/ser.rs (100%) rename implementations/rust/{ => preserves}/src/set.rs (100%) rename implementations/rust/{ => preserves}/src/symbol.rs (100%) rename implementations/rust/{ => preserves}/src/value/de.rs (100%) rename implementations/rust/{ => preserves}/src/value/magic.rs (100%) rename implementations/rust/{ => preserves}/src/value/mod.rs (100%) rename implementations/rust/{ => preserves}/src/value/packed/constants.rs (100%) rename implementations/rust/{ => preserves}/src/value/packed/mod.rs (100%) rename implementations/rust/{ => preserves}/src/value/packed/reader.rs (100%) rename implementations/rust/{ => preserves}/src/value/packed/writer.rs (100%) rename implementations/rust/{ => preserves}/src/value/reader.rs (100%) rename implementations/rust/{ => preserves}/src/value/repr.rs (100%) rename implementations/rust/{ => preserves}/src/value/ser.rs (100%) rename implementations/rust/{ => preserves}/src/value/signed_integer.rs (100%) rename implementations/rust/{ => preserves}/src/value/writer.rs (100%) rename implementations/rust/{ => preserves}/tests/samples/mod.rs (100%) rename implementations/rust/{ => preserves}/tests/samples_tests.rs (97%) diff --git a/implementations/rust/Cargo.toml b/implementations/rust/Cargo.toml index 53053fa..fd9b7d2 100644 --- a/implementations/rust/Cargo.toml +++ b/implementations/rust/Cargo.toml @@ -1,25 +1,4 @@ -[package] -name = "preserves" -version = "0.12.0" -authors = ["Tony Garnock-Jones "] -edition = "2018" -description = "Implementation of the Preserves serialization format via serde." -homepage = "https://preserves.gitlab.io/" -repository = "https://gitlab.com/preserves/preserves" -license = "Apache-2.0" - -[badges] -gitlab = { repository = "preserves/preserves" } - -[dependencies] -num = "0.2" -serde = { version = "1.0", features = ["derive"] } -serde_bytes = "0.11" -lazy_static = "1.4.0" - -[dev-dependencies] -criterion = "0.3" - -[[bench]] -name = "codec" -harness = false +[workspace] +members = [ + "preserves", + ] diff --git a/implementations/rust/examples/known-data.bin b/implementations/rust/examples/known-data.bin deleted file mode 100644 index d7173a3..0000000 --- a/implementations/rust/examples/known-data.bin +++ /dev/null @@ -1 +0,0 @@ -”‚uApple‚vColourSred‚uApple‚vColourUgreen„vBanana‚ykilograms?¾¸Që…¸‚vColourXbrownish5‚tPearzConference \ No newline at end of file diff --git a/implementations/rust/examples/unknown-data.bin b/implementations/rust/examples/unknown-data.bin deleted file mode 100644 index 233fcbb..0000000 --- a/implementations/rust/examples/unknown-data.bin +++ /dev/null @@ -1 +0,0 @@ -•‚uApple‚vColourSreduPeach‚uApple‚vColourUgreen…vBanana‚ykilograms?¾¸Që…¸‚vColourXbrownish5²xripenesswSquishy‚tPearzConference \ No newline at end of file diff --git a/implementations/rust/preserves/Cargo.toml b/implementations/rust/preserves/Cargo.toml new file mode 100644 index 0000000..53053fa --- /dev/null +++ b/implementations/rust/preserves/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "preserves" +version = "0.12.0" +authors = ["Tony Garnock-Jones "] +edition = "2018" +description = "Implementation of the Preserves serialization format via serde." +homepage = "https://preserves.gitlab.io/" +repository = "https://gitlab.com/preserves/preserves" +license = "Apache-2.0" + +[badges] +gitlab = { repository = "preserves/preserves" } + +[dependencies] +num = "0.2" +serde = { version = "1.0", features = ["derive"] } +serde_bytes = "0.11" +lazy_static = "1.4.0" + +[dev-dependencies] +criterion = "0.3" + +[[bench]] +name = "codec" +harness = false diff --git a/implementations/rust/Makefile b/implementations/rust/preserves/Makefile similarity index 100% rename from implementations/rust/Makefile rename to implementations/rust/preserves/Makefile diff --git a/implementations/rust/benches/.gitignore b/implementations/rust/preserves/benches/.gitignore similarity index 100% rename from implementations/rust/benches/.gitignore rename to implementations/rust/preserves/benches/.gitignore diff --git a/implementations/rust/benches/codec.rs b/implementations/rust/preserves/benches/codec.rs similarity index 87% rename from implementations/rust/benches/codec.rs rename to implementations/rust/preserves/benches/codec.rs index ebe8979..fad2ac1 100644 --- a/implementations/rust/benches/codec.rs +++ b/implementations/rust/preserves/benches/codec.rs @@ -10,7 +10,7 @@ mod samples; use samples::TestCases; pub fn bench_decoder_bytes(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let mut bs = vec![]; fh.read_to_end(&mut bs).ok(); c.bench_function("decode samples.bin via bytes", |b| b.iter_with_large_drop( @@ -18,7 +18,7 @@ pub fn bench_decoder_bytes(c: &mut Criterion) { } pub fn bench_decoder_file(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); c.bench_function("decode samples.bin via file", |b| b.iter_with_large_drop(|| { fh.seek(SeekFrom::Start(0)).ok(); PackedReader::decode_read(&mut fh).demand_next(true).unwrap() @@ -26,7 +26,7 @@ pub fn bench_decoder_file(c: &mut Criterion) { } pub fn bench_decoder_buffered_file(c: &mut Criterion) { - let mut fh = BufReader::new(std::fs::File::open("../../tests/samples.bin").unwrap()); + let mut fh = BufReader::new(std::fs::File::open("../../../tests/samples.bin").unwrap()); c.bench_function("decode samples.bin via buffered file", |b| b.iter_with_large_drop(|| { fh.seek(SeekFrom::Start(0)).ok(); PackedReader::decode_read(&mut fh).demand_next(true).unwrap() @@ -34,7 +34,7 @@ pub fn bench_decoder_buffered_file(c: &mut Criterion) { } pub fn bench_encoder(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let v = PackedReader::decode_read(&mut fh).demand_next(true).unwrap(); c.bench_function("encode samples.bin", |b| b.iter_with_large_drop(|| { let mut bs = vec![]; @@ -44,7 +44,7 @@ pub fn bench_encoder(c: &mut Criterion) { } pub fn bench_de(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let mut bs = vec![]; fh.read_to_end(&mut bs).ok(); c.bench_function("deserialize samples.bin", |b| b.iter_with_large_drop( @@ -52,7 +52,7 @@ pub fn bench_de(c: &mut Criterion) { } pub fn bench_ser(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let v: TestCases = de::from_read(&mut fh).unwrap(); c.bench_function("serialize samples.bin", |b| b.iter_with_large_drop(|| { let mut bs = vec![]; @@ -62,7 +62,7 @@ pub fn bench_ser(c: &mut Criterion) { } pub fn bench_decoder_de(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let mut bs = vec![]; fh.read_to_end(&mut bs).ok(); c.bench_function("decode-then-deserialize samples.bin", |b| b.iter_with_large_drop( @@ -70,7 +70,7 @@ pub fn bench_decoder_de(c: &mut Criterion) { } pub fn bench_ser_encoder(c: &mut Criterion) { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let v: TestCases = de::from_read(&mut fh).unwrap(); c.bench_function("serialize-then-encode samples.bin", |b| b.iter_with_large_drop(|| { let mut bs = vec![]; diff --git a/implementations/rust/benches/testdata.bin.gz b/implementations/rust/preserves/benches/testdata.bin.gz similarity index 100% rename from implementations/rust/benches/testdata.bin.gz rename to implementations/rust/preserves/benches/testdata.bin.gz diff --git a/implementations/rust/examples/Makefile b/implementations/rust/preserves/examples/Makefile similarity index 53% rename from implementations/rust/examples/Makefile rename to implementations/rust/preserves/examples/Makefile index 943d1e9..5ff7815 100644 --- a/implementations/rust/examples/Makefile +++ b/implementations/rust/preserves/examples/Makefile @@ -3,7 +3,7 @@ BINARY_FILES=known-data.bin unknown-data.bin all: $(BINARY_FILES) %.bin: %.txt Makefile - racket ../../racket/preserves/preserves/tool.rkt --atob --no-annotations < $< > $@.tmp || (rm -f $@.tmp; false) + racket ../../../racket/preserves/preserves/tool.rkt --atob --no-annotations < $< > $@.tmp || (rm -f $@.tmp; false) mv $@.tmp $@ clean: diff --git a/implementations/rust/examples/extensibility.rs b/implementations/rust/preserves/examples/extensibility.rs similarity index 100% rename from implementations/rust/examples/extensibility.rs rename to implementations/rust/preserves/examples/extensibility.rs diff --git a/implementations/rust/preserves/examples/known-data.bin b/implementations/rust/preserves/examples/known-data.bin new file mode 100644 index 0000000..adbd836 --- /dev/null +++ b/implementations/rust/preserves/examples/known-data.bin @@ -0,0 +1,2 @@ +µ´³Apple´³Colour±red„„´³Apple´³Colour±green„„´³Banana´³ kilogramsƒ?¾¸Që…¸„´³Colour±brownish„•„´³Pear´³ +Conference„„„ \ No newline at end of file diff --git a/implementations/rust/examples/known-data.txt b/implementations/rust/preserves/examples/known-data.txt similarity index 100% rename from implementations/rust/examples/known-data.txt rename to implementations/rust/preserves/examples/known-data.txt diff --git a/implementations/rust/preserves/examples/unknown-data.bin b/implementations/rust/preserves/examples/unknown-data.bin new file mode 100644 index 0000000..0cc8b25 --- /dev/null +++ b/implementations/rust/preserves/examples/unknown-data.bin @@ -0,0 +1,2 @@ +µ´³Apple´³Colour±red„„´³Peach„´³Apple´³Colour±green„„´³Banana´³ kilogramsƒ?¾¸Që…¸„´³Colour±brownish„•·³ripeness´³Squishy„„„´³Pear´³ +Conference„„„ \ No newline at end of file diff --git a/implementations/rust/examples/unknown-data.txt b/implementations/rust/preserves/examples/unknown-data.txt similarity index 100% rename from implementations/rust/examples/unknown-data.txt rename to implementations/rust/preserves/examples/unknown-data.txt diff --git a/implementations/rust/src/de.rs b/implementations/rust/preserves/src/de.rs similarity index 100% rename from implementations/rust/src/de.rs rename to implementations/rust/preserves/src/de.rs diff --git a/implementations/rust/src/error.rs b/implementations/rust/preserves/src/error.rs similarity index 100% rename from implementations/rust/src/error.rs rename to implementations/rust/preserves/src/error.rs diff --git a/implementations/rust/src/lib.rs b/implementations/rust/preserves/src/lib.rs similarity index 100% rename from implementations/rust/src/lib.rs rename to implementations/rust/preserves/src/lib.rs diff --git a/implementations/rust/src/ser.rs b/implementations/rust/preserves/src/ser.rs similarity index 100% rename from implementations/rust/src/ser.rs rename to implementations/rust/preserves/src/ser.rs diff --git a/implementations/rust/src/set.rs b/implementations/rust/preserves/src/set.rs similarity index 100% rename from implementations/rust/src/set.rs rename to implementations/rust/preserves/src/set.rs diff --git a/implementations/rust/src/symbol.rs b/implementations/rust/preserves/src/symbol.rs similarity index 100% rename from implementations/rust/src/symbol.rs rename to implementations/rust/preserves/src/symbol.rs diff --git a/implementations/rust/src/value/de.rs b/implementations/rust/preserves/src/value/de.rs similarity index 100% rename from implementations/rust/src/value/de.rs rename to implementations/rust/preserves/src/value/de.rs diff --git a/implementations/rust/src/value/magic.rs b/implementations/rust/preserves/src/value/magic.rs similarity index 100% rename from implementations/rust/src/value/magic.rs rename to implementations/rust/preserves/src/value/magic.rs diff --git a/implementations/rust/src/value/mod.rs b/implementations/rust/preserves/src/value/mod.rs similarity index 100% rename from implementations/rust/src/value/mod.rs rename to implementations/rust/preserves/src/value/mod.rs diff --git a/implementations/rust/src/value/packed/constants.rs b/implementations/rust/preserves/src/value/packed/constants.rs similarity index 100% rename from implementations/rust/src/value/packed/constants.rs rename to implementations/rust/preserves/src/value/packed/constants.rs diff --git a/implementations/rust/src/value/packed/mod.rs b/implementations/rust/preserves/src/value/packed/mod.rs similarity index 100% rename from implementations/rust/src/value/packed/mod.rs rename to implementations/rust/preserves/src/value/packed/mod.rs diff --git a/implementations/rust/src/value/packed/reader.rs b/implementations/rust/preserves/src/value/packed/reader.rs similarity index 100% rename from implementations/rust/src/value/packed/reader.rs rename to implementations/rust/preserves/src/value/packed/reader.rs diff --git a/implementations/rust/src/value/packed/writer.rs b/implementations/rust/preserves/src/value/packed/writer.rs similarity index 100% rename from implementations/rust/src/value/packed/writer.rs rename to implementations/rust/preserves/src/value/packed/writer.rs diff --git a/implementations/rust/src/value/reader.rs b/implementations/rust/preserves/src/value/reader.rs similarity index 100% rename from implementations/rust/src/value/reader.rs rename to implementations/rust/preserves/src/value/reader.rs diff --git a/implementations/rust/src/value/repr.rs b/implementations/rust/preserves/src/value/repr.rs similarity index 100% rename from implementations/rust/src/value/repr.rs rename to implementations/rust/preserves/src/value/repr.rs diff --git a/implementations/rust/src/value/ser.rs b/implementations/rust/preserves/src/value/ser.rs similarity index 100% rename from implementations/rust/src/value/ser.rs rename to implementations/rust/preserves/src/value/ser.rs diff --git a/implementations/rust/src/value/signed_integer.rs b/implementations/rust/preserves/src/value/signed_integer.rs similarity index 100% rename from implementations/rust/src/value/signed_integer.rs rename to implementations/rust/preserves/src/value/signed_integer.rs diff --git a/implementations/rust/src/value/writer.rs b/implementations/rust/preserves/src/value/writer.rs similarity index 100% rename from implementations/rust/src/value/writer.rs rename to implementations/rust/preserves/src/value/writer.rs diff --git a/implementations/rust/tests/samples/mod.rs b/implementations/rust/preserves/tests/samples/mod.rs similarity index 100% rename from implementations/rust/tests/samples/mod.rs rename to implementations/rust/preserves/tests/samples/mod.rs diff --git a/implementations/rust/tests/samples_tests.rs b/implementations/rust/preserves/tests/samples_tests.rs similarity index 97% rename from implementations/rust/tests/samples_tests.rs rename to implementations/rust/preserves/tests/samples_tests.rs index 3a09041..5d64399 100644 --- a/implementations/rust/tests/samples_tests.rs +++ b/implementations/rust/preserves/tests/samples_tests.rs @@ -15,7 +15,7 @@ fn decode_all(bytes: &'_ [u8]) -> Result, std::io::Error> { } #[test] fn run() -> std::io::Result<()> { - let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap(); + let mut fh = std::fs::File::open("../../../tests/samples.bin").unwrap(); let mut d = PackedReader::decode_read(&mut fh).configured(true); let tests: TestCases = deserialize_from_value(&d.next().unwrap().unwrap()).unwrap(); // println!("{:#?}", tests);