Skip to content

Commit 2acdd45

Browse files
committed
Detach codec
1 parent 2ee52e3 commit 2acdd45

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

Haskell-Generate/GenRustJets.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ rustJetCJetPtr mod = vsep $
212212

213213
rustJetEncode :: Module -> Doc a
214214
rustJetEncode mod =
215-
"fn encode<W: Write>(&self, w: &mut BitWriter<W>) -> std::io::Result<usize>" <+>
215+
"fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize>" <+>
216216
nestBraces ("let (n, len) = match self" <+>
217217
nestBraces (vsep (foldMapWithPath item (moduleCodes mod))) <> semi <-> line <> "w.write_bits_be(n, len)")
218218
where
@@ -223,9 +223,10 @@ rustJetEncode mod =
223223

224224
rustJetDecode :: Module -> Doc a
225225
rustJetDecode mod =
226-
"fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error>" <+>
226+
pretty ("pub(crate) fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<" ++ modname ++ ", decode::Error>") <+>
227227
nestBraces ("decode_bits!(bits," <+> braces (docTree (moduleCodes mod)) <> ")")
228228
where
229+
modname = rustModuleName mod
229230
docTree Dead = mempty
230231
docTree (Leaf (SomeArrow jet)) = pretty (rustModuleName mod ++ "::" ++ jetName jet)
231232
docTree (Branch l r) = nest 4
@@ -259,7 +260,6 @@ rustJetImpl mod = vsep $
259260
, rustJetSourceTy mod
260261
, rustJetTargetTy mod
261262
, rustJetEncode mod
262-
, rustJetDecode mod
263263
, rustJetCost mod
264264
])
265265
, "}"
@@ -350,6 +350,7 @@ rustJetDoc mod = layoutPretty layoutOptions $ vsep (map (<> line)
350350
, rustJetDisplay mod
351351
, rustJetFromStr mod
352352
, rustJetCJetPtr mod
353+
, rustJetDecode mod
353354
])
354355

355356
rustFFIImports :: Doc a

0 commit comments

Comments
 (0)