Skip to content

Commit 6d5049f

Browse files
GuillaumeGomezsyphar
authored andcommitted
More let bindings to ensure no field is forgotten in bincode::Encode impls
1 parent c0a977f commit 6d5049f

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/db/types/version.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,16 @@ mod version_impl {
4545
&self,
4646
encoder: &mut E,
4747
) -> Result<(), bincode::error::EncodeError> {
48-
self.0.major.encode(encoder)?;
49-
self.0.minor.encode(encoder)?;
50-
self.0.patch.encode(encoder)?;
48+
let Self(semver::Version {
49+
major,
50+
minor,
51+
patch,
52+
pre: _,
53+
build: _,
54+
}) = self;
55+
major.encode(encoder)?;
56+
minor.encode(encoder)?;
57+
patch.encode(encoder)?;
5158
bincode::Encode::encode(self.0.pre.as_str(), encoder)?;
5259
bincode::Encode::encode(self.0.build.as_str(), encoder)?;
5360
Ok(())

src/utils/cargo_metadata.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,20 @@ impl bincode::Encode for Dependency {
140140
&self,
141141
encoder: &mut E,
142142
) -> Result<(), bincode::error::EncodeError> {
143-
self.name.encode(encoder)?;
143+
let Self {
144+
name,
145+
req,
146+
kind,
147+
rename,
148+
optional,
149+
} = self;
150+
name.encode(encoder)?;
144151
// FIXME: VersionReq does not implement Encode, so we serialize it to string
145152
// Could be fixable by wrapping VersionReq in a newtype
146-
self.req.to_string().encode(encoder)?;
147-
self.kind.encode(encoder)?;
148-
self.rename.encode(encoder)?;
149-
self.optional.encode(encoder)?;
153+
req.to_string().encode(encoder)?;
154+
kind.encode(encoder)?;
155+
rename.encode(encoder)?;
156+
optional.encode(encoder)?;
150157
Ok(())
151158
}
152159
}

0 commit comments

Comments
 (0)