Skip to content

Commit cf4b6d6

Browse files
authored
merge release/0.30.3 into master (#698)
* fix(logfmt): fixed parsing of empty unquoted values (#695) * fix: fixed handling of empty values for predefined fields (#696)
2 parents f29f490 + c041f48 commit cf4b6d6

File tree

6 files changed

+302
-43
lines changed

6 files changed

+302
-43
lines changed

Cargo.lock

+127-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ members = [".", "crate/encstr", "crate/heapopt"]
44
[workspace.package]
55
repository = "https://github.com/pamburus/hl"
66
authors = ["Pavel Ivanov <[email protected]>"]
7-
version = "0.31.0-alpha.3"
7+
version = "0.31.0-alpha.4"
88
edition = "2021"
99
license = "MIT"
1010

@@ -99,6 +99,7 @@ mockall = "0"
9999
stats_alloc = "0"
100100
regex = "1"
101101
wildmatch = "2"
102+
rstest = "0"
102103

103104
[profile.release]
104105
debug = false

crate/serde-logfmt/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
description = "Logfmt decoding based on serde"
33
name = "serde-logfmt"
4-
version = "0.1.0"
4+
version = "0.1.1"
55
workspace = "../.."
66
repository.workspace = true
77
edition.workspace = true

crate/serde-logfmt/src/logfmt/de.rs

+20-2
Original file line numberDiff line numberDiff line change
@@ -540,8 +540,6 @@ impl<'de> Parser<'de> {
540540
}
541541

542542
fn parse_unquoted_value(&mut self) -> Result<&'de str> {
543-
self.skip_garbage();
544-
545543
let start = self.index;
546544
let mut unicode = false;
547545

@@ -1027,4 +1025,24 @@ mod tests {
10271025
let val: TestStruct = from_str("v=B").unwrap();
10281026
assert_eq!(val, TestStruct { v: TestEnum::B });
10291027
}
1028+
1029+
#[test]
1030+
fn test_empty_value() {
1031+
#[derive(Deserialize, PartialEq, Debug)]
1032+
struct Test {
1033+
int: u32,
1034+
str1: String,
1035+
str2: String,
1036+
str3: String,
1037+
}
1038+
1039+
let j = r#"int=0 str1="" str2= str3="#;
1040+
let expected = Test {
1041+
int: 0,
1042+
str1: "".to_string(),
1043+
str2: "".to_string(),
1044+
str3: "".to_string(),
1045+
};
1046+
assert_eq!(expected, from_str(j).unwrap());
1047+
}
10301048
}

0 commit comments

Comments
 (0)