From 35fb668a8c09bbb9d48527a476d69604f68ed84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Sewi=C5=82o?= <95349104+ksew1@users.noreply.github.com> Date: Mon, 7 Oct 2024 06:27:59 -0700 Subject: [PATCH] Derive more (#18) ## Introduced changes - Add Display, Default, Ord, PartialOrd ## Checklist - [ ] Linked relevant issue - [ ] Updated relevant documentation - [ ] Added relevant tests - [x] Performed self-review of the code - [ ] Added changes to `CHANGELOG.md` --- Cargo.lock | 34 +++++++------------ Cargo.toml | 2 +- .../src/annotations/coverage.rs | 10 ++++-- .../src/annotations/profiler.rs | 5 ++- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9c72aba..9f02332 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -443,6 +443,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.79", + "unicode-xid", ] [[package]] @@ -760,9 +761,9 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +checksum = "bbc2a4da0d9e52ccfe6306801a112e81a8fc0c76aa3e4449fefeda7fef72bb34" dependencies = [ "lambdaworks-math", "serde", @@ -772,9 +773,9 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +checksum = "d1bd2632acbd9957afc5aeec07ad39f078ae38656654043bf16e046fa2730e23" dependencies = [ "serde", "serde_json", @@ -924,12 +925,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.1" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" -dependencies = [ - "portable-atomic", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "oorandom" @@ -1017,12 +1015,6 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" -[[package]] -name = "portable-atomic" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" - [[package]] name = "precomputed-hash" version = "0.1.1" @@ -1337,9 +1329,9 @@ dependencies = [ [[package]] name = "snapbox" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840b73eb3148bc3cbc10ebe00ec9bc6d96033e658d022c4adcbf3f35596fd64a" +checksum = "7ba434818a8a9b1b106404288d6bd75a94348aae8fc9a518b211b609a36a54bc" dependencies = [ "anstream", "anstyle", @@ -1376,9 +1368,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "starknet-types-core" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b889ee5734db8b3c8a6551135c16764bf4ce1ab4955fffbb2ac5b6706542b64" +checksum = "fa1b9e01ccb217ab6d475c5cda05dbb22c30029f7bb52b192a010a00d77a3d74" dependencies = [ "lambdaworks-crypto", "lambdaworks-math", @@ -1539,9 +1531,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" dependencies = [ "serde", "stable_deref_trait", diff --git a/Cargo.toml b/Cargo.toml index 8f8df84..a359617 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ cairo-lang-sierra-to-casm = "2.8.2" cairo-lang-sierra = "2.8.2" camino = { version = "1.1.9", features = ["serde1"] } thiserror = "1.0.64" -derive_more = { version = "1.0.0", features = ["add", "add_assign", "mul", "mul_assign"] } +derive_more = { version = "1.0.0", features = ["add", "add_assign", "mul", "mul_assign", "display"] } serde = { version = "1.0.195", features = ["derive"] } serde_json = "1.0.128" assert_fs = "1.1.2" diff --git a/crates/cairo-annotations/src/annotations/coverage.rs b/crates/cairo-annotations/src/annotations/coverage.rs index c583ec5..d548567 100644 --- a/crates/cairo-annotations/src/annotations/coverage.rs +++ b/crates/cairo-annotations/src/annotations/coverage.rs @@ -1,6 +1,6 @@ use crate::annotations::impl_helpers::impl_namespace; use cairo_lang_sierra::program::StatementIdx; -use derive_more::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Sub, SubAssign}; +use derive_more::{Add, AddAssign, Display, Div, DivAssign, Mul, MulAssign, Sub, SubAssign}; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::collections::HashMap; @@ -38,7 +38,9 @@ pub struct CodeLocation(pub SourceFileFullPath, pub SourceCodeSpan); /// May contain multiple Cairo virtual file markings if the code is generated by macros. /// Like `/path/to/project/lib.cairo[array_inline_macro][assert_macro]` /// where `array_inline_macro` and `assert_macro` is a virtual file marking. -#[derive(Clone, Debug, Eq, PartialEq, Hash, Serialize, Deserialize)] +#[derive( + Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd, Serialize, Deserialize, Display, Default, +)] pub struct SourceFileFullPath(pub String); /// A span in a Cairo source file. @@ -80,6 +82,8 @@ pub struct SourceCodeLocation { MulAssign, Div, DivAssign, + Display, + Default, )] pub struct ColumnNumber(pub usize); @@ -102,6 +106,8 @@ pub struct ColumnNumber(pub usize); MulAssign, Div, DivAssign, + Display, + Default, )] pub struct LineNumber(pub usize); diff --git a/crates/cairo-annotations/src/annotations/profiler.rs b/crates/cairo-annotations/src/annotations/profiler.rs index cd05a61..34b7e09 100644 --- a/crates/cairo-annotations/src/annotations/profiler.rs +++ b/crates/cairo-annotations/src/annotations/profiler.rs @@ -1,5 +1,6 @@ use crate::annotations::impl_helpers::impl_namespace; use cairo_lang_sierra::program::StatementIdx; +use derive_more::Display; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::collections::HashMap; @@ -29,7 +30,9 @@ pub struct ProfilerAnnotationsV1 { } /// The fully qualified Cairo path of the Cairo function. -#[derive(Clone, Debug, Eq, PartialEq, Hash, Serialize, Deserialize)] +#[derive( + Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd, Serialize, Deserialize, Display, Default, +)] pub struct FunctionName(pub String); // We can't use untagged enum here. See https://github.com/serde-rs/json/issues/1103