4BMW4JJOJ3XKMSUXDGOG4QC6QPDBC4PBOD3M2RAQQPRAF3CSGXUQC
K3G4HK2JH4MFDAMYD6N2AZONCHE7QYMQ3S4LAND3A5IAD7BHC5TAC
XGRU7WZEM6PTUCSHUA6QGNK7N34M7OPE52BTDC33BHSUEWM6B4FAC
CESJ4CTO26X4GBZBPXRXLOJT3JQJOGFN5EJSNAAZELNQRZF7QSYAC
3NMKD6I57ONAGHEN4PZIAV2KPYESVR4JL3DTWSHXKCMVJBEQ4GIQC
7M4UI3TWQIAA333GQ577HDWDWZPSZKWCYG556L6SBRLB6SZDQYPAC
O77KA6C4UJGZXVGPEA7WCRQH6XYQJPWETSPDXI3VOKOSRQND7JEQC
OWXLFLRMQDTXWN5QQQLJNAATWFWXIN2S4UQA2LC2A6AWX4UWM6LQC
// Get the generics for the derived item
let (impl_generics, type_generics, where_clause) = derive_input.generics.split_for_impl();
// Combine all of the derived item's generic parameters along with `std::io::Write` for `Localize`
// e.g. for MyStruct<'a, T>, it will be <'a, T, W: std::io::Write>
let localize_impl_generics =
derive_input
.generics
.params
.clone()
.into_iter()
.chain(std::iter::once(syn::GenericParam::Type(
parse_quote!(W: std::io::Write),
)));