Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
545 changes: 545 additions & 0 deletions docs/migration_plan.md

Large diffs are not rendered by default.

343 changes: 343 additions & 0 deletions docs/recursion_classification.md

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions raw_parse_iter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Root
/ | \
left mid right

1. Stack: Node(Root), result: []
2. Stack: Collect(Root), Node(left), Node(mid), Node(right), result: []
3. Stack: Collect(Root), Node(left), Node(mid), Collect(right), Node(right_1), Node(right_2), result: []
4. Stack: Collect(Root), Node(left), Node(mid), Collect(right), Node(right_1), result: [right_2]
5. Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), Node(right_1_1), Node(right_1_2), result: [right_2]
6. Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), Node(right_1_1), result: [right_2, right_1_2]
7. Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), result: [right_2, right_1_2, right_1_1]
8. Stack: Collect(Root), Node(left), Node(mid), Collect(right), result: [right_2, right_1]
9. Stack: Collect(Root), Node(left), Node(mid), result: [right]
10. Stack: Collect(Root), Node(left), result: [right, mid]
11. Stack: Collect(Root), Collect(left), Node(left_1), Node(left_2), result: [right, mid]
4 changes: 4 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ mod parse_result;
pub mod protobuf;
mod query;
mod raw_deparse;
mod raw_deparse_iter;
mod raw_fingerprint;
mod raw_parse;
mod raw_parse_iter;
mod raw_scan;
mod summary;
mod summary_result;
Expand All @@ -66,6 +68,8 @@ pub use query::*;
pub use raw_deparse::{deparse_raw, deparse_raw_with_stack};
pub use raw_fingerprint::fingerprint_raw;
pub use raw_parse::{parse_raw, parse_raw_with_stack};
pub use raw_parse_iter::parse_raw_iter;
pub use raw_deparse_iter::deparse_raw_iter;
pub use raw_scan::scan_raw;
pub use summary::*;
pub use summary_result::*;
Expand Down
7 changes: 7 additions & 0 deletions src/raw_deparse_iter.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
use crate::{deparse_raw, protobuf};
use crate::{Error, Result};

pub fn deparse_raw_iter(protobuf: &protobuf::ParseResult) -> Result<String> {
// TODO: Implement iterative deparsing
deparse_raw(protobuf)
}
Loading
Loading