Skip to content

Commit dc7e755

Browse files
committed
Use BTreeMap for variable mapping so the serde output is sorted
1 parent 88e39d2 commit dc7e755

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#[cfg(test)]
22
use regex::Regex;
33
use serde::Serialize;
4-
use std::collections::HashMap;
4+
use std::collections::BTreeMap;
55
#[cfg(test)]
66
use std::path::PathBuf;
77
#[cfg(test)]
@@ -92,7 +92,7 @@ pub struct LogMapping<'a> {
9292
pub log_ref: LogRef<'a>,
9393
#[serde(rename(serialize = "srcRef"))]
9494
pub src_ref: Option<SourceRef>,
95-
pub variables: HashMap<String, String>,
95+
pub variables: BTreeMap<String, String>,
9696
pub stack: Vec<Vec<SourceRef>>,
9797
}
9898

@@ -168,8 +168,8 @@ pub fn lookup_source<'a>(
168168
pub fn extract_variables<'a>(
169169
log_ref: LogRef<'a>,
170170
src_ref: &'a SourceRef,
171-
) -> HashMap<String, String> {
172-
let mut variables = HashMap::new();
171+
) -> BTreeMap<String, String> {
172+
let mut variables = BTreeMap::new();
173173
let line = match log_ref.details {
174174
Some(details) => details.body.unwrap_or(log_ref.line),
175175
None => log_ref.line,
@@ -235,7 +235,7 @@ pub fn do_mappings<'a>(
235235
} else {
236236
link_to_source(&log_ref, &src_logs)
237237
};
238-
let variables = src_ref.as_ref().map_or(HashMap::new(), move |src_ref| {
238+
let variables = src_ref.as_ref().map_or(BTreeMap::new(), move |src_ref| {
239239
extract_variables(log_ref, src_ref)
240240
});
241241
let stack = src_ref.as_ref().map_or(Vec::new(), |src_ref| {

tests/snapshots/test_rust__basic.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ exit_code: 0
1818
{"srcRef":{"sourcePath":"{example_dir}/basic.rs","lineNumber":15,"column":11,"name":"foo","text":"\"Hello from foo i={}\"","args":["Placeholder"],"vars":["i"]},"variables":{"i":"1"},"stack":[[{"sourcePath":"{example_dir}/basic.rs","lineNumber":8,"column":8,"name":"main","text":"foo","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":10,"column":4,"name":"main","text":"bar","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":11,"column":4,"name":"main","text":"baz","args":[],"vars":[]}]]}
1919
{"srcRef":{"sourcePath":"{example_dir}/basic.rs","lineNumber":15,"column":11,"name":"foo","text":"\"Hello from foo i={}\"","args":["Placeholder"],"vars":["i"]},"variables":{"i":"2"},"stack":[[{"sourcePath":"{example_dir}/basic.rs","lineNumber":8,"column":8,"name":"main","text":"foo","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":10,"column":4,"name":"main","text":"bar","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":11,"column":4,"name":"main","text":"baz","args":[],"vars":[]}]]}
2020
{"srcRef":{"sourcePath":"{example_dir}/basic.rs","lineNumber":18,"column":24,"name":"bar","text":"\"Hello from bar j={j}\"","args":[{"Named":"j"}],"vars":[]},"variables":{"j":"4"},"stack":[[{"sourcePath":"{example_dir}/basic.rs","lineNumber":8,"column":8,"name":"main","text":"foo","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":10,"column":4,"name":"main","text":"bar","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":11,"column":4,"name":"main","text":"baz","args":[],"vars":[]}]]}
21-
{"srcRef":{"sourcePath":"{example_dir}/basic.rs","lineNumber":20,"column":32,"name":"baz","text":"\"Hello from baz i={1} j={0}\"","args":[{"Positional":1},{"Positional":0}],"vars":["j","i"]},"variables":{"j":"6","i":"5"},"stack":[[{"sourcePath":"{example_dir}/basic.rs","lineNumber":8,"column":8,"name":"main","text":"foo","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":10,"column":4,"name":"main","text":"bar","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":11,"column":4,"name":"main","text":"baz","args":[],"vars":[]}]]}
21+
{"srcRef":{"sourcePath":"{example_dir}/basic.rs","lineNumber":20,"column":32,"name":"baz","text":"\"Hello from baz i={1} j={0}\"","args":[{"Positional":1},{"Positional":0}],"vars":["j","i"]},"variables":{"i":"5","j":"6"},"stack":[[{"sourcePath":"{example_dir}/basic.rs","lineNumber":8,"column":8,"name":"main","text":"foo","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":10,"column":4,"name":"main","text":"bar","args":[],"vars":[]}],[{"sourcePath":"{example_dir}/basic.rs","lineNumber":11,"column":4,"name":"main","text":"baz","args":[],"vars":[]}]]}
2222

2323
----- stderr -----

0 commit comments

Comments
 (0)