From 535bf4ce676bdd6a2a53f760a04c2bf33b1f0983 Mon Sep 17 00:00:00 2001 From: julio4 <30329843+julio4@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:26:16 +0100 Subject: [PATCH 1/2] feat: range fmt::debug --- corelib/src/ops/range.cairo | 16 ++++++++++++++++ corelib/src/test.cairo | 1 + corelib/src/test/range_test.cairo | 4 ++++ 3 files changed, 21 insertions(+) create mode 100644 corelib/src/test/range_test.cairo diff --git a/corelib/src/ops/range.cairo b/corelib/src/ops/range.cairo index 80a8bbe13df..55859544317 100644 --- a/corelib/src/ops/range.cairo +++ b/corelib/src/ops/range.cairo @@ -11,6 +11,22 @@ pub struct Range { pub end: T, } +impl RangeDebug> of crate::fmt::Debug> { + /// Formats a `Range` type, allowing to print `Range` instances for debugging purposes. + /// + /// # Examples + /// + /// ``` + /// println!("{:?}", 1..5); // Result will be `1..5` + /// ``` + fn fmt(self: @Range, ref f: crate::fmt::Formatter) -> Result<(), crate::fmt::Error> { + self.start.fmt(ref f)?; + write!(f, "..")?; + self.end.fmt(ref f)?; + Result::Ok(()) + } +} + /// Handles the range operator (`..`). #[generate_trait] pub impl RangeOpImpl of RangeOp { diff --git a/corelib/src/test.cairo b/corelib/src/test.cairo index b7fa57ea55d..1bd70bfb71f 100644 --- a/corelib/src/test.cairo +++ b/corelib/src/test.cairo @@ -20,6 +20,7 @@ mod num_test; mod option_test; mod plugins_test; mod print_test; +mod range_test; mod result_test; mod secp256k1_test; mod secp256r1_test; diff --git a/corelib/src/test/range_test.cairo b/corelib/src/test/range_test.cairo new file mode 100644 index 00000000000..81f6bccdd71 --- /dev/null +++ b/corelib/src/test/range_test.cairo @@ -0,0 +1,4 @@ +#[test] +fn test_range_format() { + assert(format!("{:?}", 1..5) == "1..5", 'bad range debug formatting'); +} From 77044e3f667bfb6e13022558fdc0217cefbc9324 Mon Sep 17 00:00:00 2001 From: julio4 <30329843+julio4@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:27:36 +0100 Subject: [PATCH 2/2] fix: use assert! macro in range_test --- corelib/src/test/range_test.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/corelib/src/test/range_test.cairo b/corelib/src/test/range_test.cairo index 81f6bccdd71..b2fc6f217cf 100644 --- a/corelib/src/test/range_test.cairo +++ b/corelib/src/test/range_test.cairo @@ -1,4 +1,4 @@ #[test] fn test_range_format() { - assert(format!("{:?}", 1..5) == "1..5", 'bad range debug formatting'); + assert!(format!("{:?}", 1..5) == "1..5"); }