From 5ec93a8692bbc13064de9f23a210929d64224b8b Mon Sep 17 00:00:00 2001 From: rvcas Date: Thu, 1 Dec 2022 15:17:31 -0500 Subject: [PATCH] feat: format bytearrays --- crates/lang/src/format.rs | 22 ++++++++++++++++++++-- examples/sample/validators/swap.ak | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/crates/lang/src/format.rs b/crates/lang/src/format.rs index 60d97f60..59fd21bf 100644 --- a/crates/lang/src/format.rs +++ b/crates/lang/src/format.rs @@ -285,7 +285,16 @@ impl<'comments> Formatter<'comments> { fn const_expr<'a, A, B>(&mut self, value: &'a Constant) -> Document<'a> { match value { - Constant::ByteArray { .. } => todo!(), + Constant::ByteArray { bytes, .. } => "#" + .to_doc() + .append( + flex_break("[", "[") + .append(join(bytes.iter().map(|b| b.to_doc()), break_(",", ", "))) + .nest(INDENT) + .append(break_(",", "")) + .append("]"), + ) + .group(), Constant::Int { value, .. } => value.to_doc(), Constant::String { value, .. } => self.string(value), @@ -615,7 +624,16 @@ impl<'comments> Formatter<'comments> { let comments = self.pop_comments(expr.start_byte_index()); let document = match expr { - UntypedExpr::ByteArray { .. } => todo!(), + UntypedExpr::ByteArray { bytes, .. } => "#" + .to_doc() + .append( + flex_break("[", "[") + .append(join(bytes.iter().map(|b| b.to_doc()), break_(",", ", "))) + .nest(INDENT) + .append(break_(",", "")) + .append("]"), + ) + .group(), UntypedExpr::If { branches, final_else, diff --git a/examples/sample/validators/swap.ak b/examples/sample/validators/swap.ak index d0931bce..b18bf996 100644 --- a/examples/sample/validators/swap.ak +++ b/examples/sample/validators/swap.ak @@ -40,7 +40,7 @@ pub fn incrementor(counter: Int, target: Int) -> Int { } pub fn who(a: ByteArray) -> ByteArray { - builtin.append_bytearray(a, #[12, 256]) + builtin.append_bytearray(a, #[12, 255]) } pub fn spend(