diff --git a/generator-native/Cargo.lock b/generator-native/Cargo.lock new file mode 100644 index 0000000..fcc616a --- /dev/null +++ b/generator-native/Cargo.lock @@ -0,0 +1,5 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "generator-native" +version = "0.1.0" diff --git a/generator-native/src/iter/group.rs b/generator-native/src/iter/group.rs new file mode 100644 index 0000000..8226ff0 --- /dev/null +++ b/generator-native/src/iter/group.rs @@ -0,0 +1,57 @@ +/// Group iterator output every n values into `Vec`. +pub struct GroupIter +where I: Iterator +{ + buffer: Vec, + iter: I, + group_at: usize, +} + +impl Iterator for GroupIter +where I: Iterator +{ + type Item = Vec; + + fn next(&mut self) -> Option + { + while self.buffer.len() < self.group_at + { + if let Some(value) = self.iter.next() { + self.buffer.push(value) + } else { + return self.swap(); + } + } + self.swap() + } +} + +impl GroupIter +where I: Iterator +{ + fn swap(&mut self) -> Option> + { + let buff = { + let next = Vec::with_capacity(self.group_at); + std::mem::replace(&mut self.buffer, next) + }; + if buff.len() > 0 { + Some(buff) + } else { + None + } + } +} + +use super::*; +pub trait GroupExt: Iterator + Sized { + fn group_at(self, at: usize) -> GroupIter<::Item, Self> + { + GroupIter{ + group_at: at, + iter: self, + buffer: Vec::with_capacity(at), + } + } +} +impl GroupExt for T where T: Iterator{} diff --git a/generator-native/src/iter/mod.rs b/generator-native/src/iter/mod.rs new file mode 100644 index 0000000..e685fca --- /dev/null +++ b/generator-native/src/iter/mod.rs @@ -0,0 +1,3 @@ + +mod group; +pub use group::*; diff --git a/generator-native/src/main.rs b/generator-native/src/main.rs index e7a11a9..c5d3c1c 100644 --- a/generator-native/src/main.rs +++ b/generator-native/src/main.rs @@ -1,3 +1,5 @@ +mod iter; + fn main() { println!("Hello, world!"); } diff --git a/generator-native/target/.rustc_info.json b/generator-native/target/.rustc_info.json new file mode 100644 index 0000000..b579c1d --- /dev/null +++ b/generator-native/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":8463141123970612326,"outputs":{"1164083562126845933":["rustc 1.43.1\nbinary: rustc\ncommit-hash: unknown\ncommit-date: unknown\nhost: x86_64-unknown-linux-gnu\nrelease: 1.43.1\nLLVM version: 10.0\n",""],"4476964694761187371":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n",""]},"successes":{}} \ No newline at end of file diff --git a/generator-native/target/debug/.cargo-lock b/generator-native/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9 b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9 new file mode 100644 index 0000000..31c115a --- /dev/null +++ b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9 @@ -0,0 +1 @@ +831912060a22ce51 \ No newline at end of file diff --git a/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9.json b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9.json new file mode 100644 index 0000000..affbb9d --- /dev/null +++ b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/bin-generator_native-41640df8cf96c4d9.json @@ -0,0 +1 @@ +{"rustc":11801549080318583226,"features":"[]","target":6091357260924395754,"profile":14996655781355331481,"path":1036222786711178230,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generator-native-41640df8cf96c4d9/dep-bin-generator_native-41640df8cf96c4d9"}}],"rustflags":[],"metadata":15184557155527542140} \ No newline at end of file diff --git a/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/dep-bin-generator_native-41640df8cf96c4d9 b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/dep-bin-generator_native-41640df8cf96c4d9 new file mode 100644 index 0000000..c23d2e4 Binary files /dev/null and b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/dep-bin-generator_native-41640df8cf96c4d9 differ diff --git a/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/invoked.timestamp b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/output b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/output new file mode 100644 index 0000000..f3f45dc --- /dev/null +++ b/generator-native/target/debug/.fingerprint/generator-native-41640df8cf96c4d9/output @@ -0,0 +1 @@ +{"message":"unused import: `super::*`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/iter/group.rs","byte_start":781,"byte_end":789,"line_start":46,"line_end":46,"column_start":5,"column_end":13,"is_primary":true,"text":[{"text":"use super::*;","highlight_start":5,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/iter/group.rs","byte_start":777,"byte_end":790,"line_start":46,"line_end":46,"column_start":1,"column_end":14,"is_primary":true,"text":[{"text":"use super::*;","highlight_start":1,"highlight_end":14}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `super::*`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/iter/group.rs:46:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m46\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0muse super::*;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} diff --git a/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9 b/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9 new file mode 100755 index 0000000..65dc186 Binary files /dev/null and b/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9 differ diff --git a/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9.d b/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9.d new file mode 100644 index 0000000..7edc0de --- /dev/null +++ b/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9.d @@ -0,0 +1,7 @@ +/home/avril/work/sfexec/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9: src/main.rs src/iter/mod.rs src/iter/group.rs + +/home/avril/work/sfexec/generator-native/target/debug/deps/generator_native-41640df8cf96c4d9.d: src/main.rs src/iter/mod.rs src/iter/group.rs + +src/main.rs: +src/iter/mod.rs: +src/iter/group.rs: diff --git a/generator-native/target/debug/generator-native b/generator-native/target/debug/generator-native new file mode 100755 index 0000000..65dc186 Binary files /dev/null and b/generator-native/target/debug/generator-native differ diff --git a/generator-native/target/debug/generator-native.d b/generator-native/target/debug/generator-native.d new file mode 100644 index 0000000..b1b079b --- /dev/null +++ b/generator-native/target/debug/generator-native.d @@ -0,0 +1 @@ +/home/avril/work/sfexec/generator-native/target/debug/generator-native: /home/avril/work/sfexec/generator-native/src/iter/group.rs /home/avril/work/sfexec/generator-native/src/iter/mod.rs /home/avril/work/sfexec/generator-native/src/main.rs diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ds2u1wl09ze7ut.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ds2u1wl09ze7ut.o new file mode 100644 index 0000000..3c70dc8 Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ds2u1wl09ze7ut.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ffjhadzqtc5btrj.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ffjhadzqtc5btrj.o new file mode 100644 index 0000000..9c06676 Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/1ffjhadzqtc5btrj.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/3zc51zedlzifub08.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/3zc51zedlzifub08.o new file mode 100644 index 0000000..1fa6ea4 Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/3zc51zedlzifub08.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dep-graph.bin b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dep-graph.bin new file mode 100644 index 0000000..ad7ca61 Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dep-graph.bin differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dzuuvto5b2esu0b.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dzuuvto5b2esu0b.o new file mode 100644 index 0000000..da17e3d Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/dzuuvto5b2esu0b.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/kjfne0ur4x335ep.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/kjfne0ur4x335ep.o new file mode 100644 index 0000000..329f2eb Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/kjfne0ur4x335ep.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/lttzlm1m3atpqei.o b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/lttzlm1m3atpqei.o new file mode 100644 index 0000000..eac101f Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/lttzlm1m3atpqei.o differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/query-cache.bin b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/query-cache.bin new file mode 100644 index 0000000..a47a6f8 Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/query-cache.bin differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/work-products.bin b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/work-products.bin new file mode 100644 index 0000000..f3fdc1d Binary files /dev/null and b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0-12ivxdfgg5q4y/work-products.bin differ diff --git a/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0.lock b/generator-native/target/debug/incremental/generator_native-1qr97kxlap6ux/s-fnqd217ozw-16d3yr0.lock new file mode 100755 index 0000000..e69de29