1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-08-08 08:22:52 +02:00

replace ser var name with serializer to avoid typo to trip up

This commit is contained in:
Glen De Cauwsemaecker
2025-07-16 16:05:01 +02:00
parent 2ac209c9a9
commit 602ef859ba

View File

@ -11,34 +11,34 @@ unrepresentable**.
# use std::fmt::Write; # use std::fmt::Write;
#[derive(Default)] #[derive(Default)]
struct Serializer { output: String } struct Serializer { output: String }
struct SerializeStruct { ser: Serializer } struct SerializeStruct { serializer: Serializer }
impl Serializer { impl Serializer {
fn serialize_struct(mut self, name: &str) -> SerializeStruct { fn serialize_struct(mut self, name: &str) -> SerializeStruct {
let _ = writeln!(&mut self.output, "{name} {{"); let _ = writeln!(&mut self.output, "{name} {{");
SerializeStruct { ser: self } SerializeStruct { serializer: self }
} }
} }
impl SerializeStruct { impl SerializeStruct {
fn serialize_field(mut self, key: &str, value: &str) -> Self { fn serialize_field(mut self, key: &str, value: &str) -> Self {
let _ = writeln!(&mut self.ser.output, " {key}={value};"); let _ = writeln!(&mut self.serializer.output, " {key}={value};");
self self
} }
fn finish_struct(mut self) -> Serializer { fn finish_struct(mut self) -> Serializer {
self.ser.output.push_str("}\n"); self.serializer.output.push_str("}\n");
self.ser self.serializer
} }
} }
fn main() { fn main() {
let ser = Serializer::default() let serializer = Serializer::default()
.serialize_struct("User") .serialize_struct("User")
.serialize_field("id", "42") .serialize_field("id", "42")
.serialize_field("name", "Alice") .serialize_field("name", "Alice")
.finish_struct(); .finish_struct();
println!("{}", ser.output); println!("{}", serializer.output);
} }
``` ```