From f8a7819e5c42b47523d2ef105962e77b0457a2cd Mon Sep 17 00:00:00 2001 From: jamesbt365 Date: Sat, 15 Jun 2024 02:13:47 +0100 Subject: [PATCH] Use aformat! --- Cargo.lock | 120 ++++++++++++++++++++++++++++++++------- Cargo.toml | 1 + src/commands/mod.rs | 10 +--- src/events/issues/mod.rs | 14 +---- 4 files changed, 107 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e201d81..7309842 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + [[package]] name = "addr2line" version = "0.21.0" @@ -17,6 +23,32 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aformat" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7921ec1acbc11ff8e4b946c6a0069bbf88b20190c20a7bc62178e61c5958c793" +dependencies = [ + "aformat-macros", + "arrayvec", + "to-arraystring 0.2.0", + "typenum", + "typenum_mappings", +] + +[[package]] +name = "aformat-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ddda9f2b1f6b050eb2564f4aff6ceb0659278d9ae560e79552a957074d107e" +dependencies = [ + "bytestring", + "proc-macro2", + "procout", + "quote", + "syn 2.0.66", +] + [[package]] name = "aho-corasick" version = "1.1.2" @@ -64,7 +96,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -145,6 +177,15 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +[[package]] +name = "bytestring" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72" +dependencies = [ + "bytes", +] + [[package]] name = "camino" version = "1.1.6" @@ -196,8 +237,10 @@ checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", + "js-sys", "num-traits", "serde", + "wasm-bindgen", "windows-targets 0.52.4", ] @@ -292,7 +335,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -303,7 +346,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -493,7 +536,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1014,7 +1057,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1117,7 +1160,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1134,13 +1177,26 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] +[[package]] +name = "procout" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d710f595d4e0a6df3265e2fc65731ee564ada41400628563fe635905ab70418" +dependencies = [ + "Inflector", + "chrono", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "pulldown-cmark" version = "0.9.6" @@ -1154,9 +1210,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1486,7 +1542,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1696,9 +1752,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -1736,6 +1792,7 @@ dependencies = [ name = "tabletbot" version = "1.0.0" dependencies = [ + "aformat", "arrayvec", "hex", "octocrab", @@ -1745,7 +1802,7 @@ dependencies = [ "serde", "serde_json", "serenity", - "to-arraystring", + "to-arraystring 0.1.3", "tokio", ] @@ -1784,7 +1841,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1844,6 +1901,17 @@ dependencies = [ "ryu", ] +[[package]] +name = "to-arraystring" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65f0cb560353f425f2258dd9a5159441ac9c47ef7f87e5ab6836a7b1f04ef71d" +dependencies = [ + "arrayvec", + "itoa", + "ryu", +] + [[package]] name = "tokio" version = "1.36.0" @@ -1870,7 +1938,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -1960,7 +2028,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -2017,6 +2085,18 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "typenum_mappings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cbc2d8952dd1e08b0164a5b51549e80631ac9da4107669d26c8ea89cb0b5545" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "to-arraystring 0.2.0", +] + [[package]] name = "typesize" version = "0.1.5" @@ -2043,7 +2123,7 @@ checksum = "0b122284365ba8497be951b9a21491f70c9688eb6fddc582931a0703f6a00ece" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", ] [[package]] @@ -2170,7 +2250,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", "wasm-bindgen-shared", ] @@ -2204,7 +2284,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.toml index 9fc0ecf..164f659 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,3 +23,4 @@ reqwest = "0.11.22" hex = "0.4.3" to-arraystring = "0.1.3" arrayvec = "0.7.4" +aformat = "0.1.2" diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 73fd0e0..6211962 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -5,7 +5,7 @@ pub(crate) const ACCENT_COLOUR: Colour = Colour(0x8957e5); pub(crate) const OK_COLOUR: Colour = Colour(0x2ecc71); pub(crate) const ERROR_COLOUR: Colour = Colour(0xe74c3c); -use arrayvec::ArrayString; +use aformat::aformat; use to_arraystring::ToArrayString; use crate::{Context, Error}; @@ -91,13 +91,9 @@ pub async fn paginate_lists( ) -> Result<(), Error> { let ctx_id = ctx.id().to_arraystring(); - let mut prev_button_id = ArrayString::<24>::new(); - prev_button_id.push_str(&ctx_id); - prev_button_id.push_str("prev"); - let mut next_button_id = ArrayString::<24>::new(); - next_button_id.push_str(&ctx_id); - next_button_id.push_str("next"); + let prev_button_id = aformat!("{ctx_id}prev"); + let next_button_id = aformat!("{ctx_id}next"); let colour = Colour::TEAL; diff --git a/src/events/issues/mod.rs b/src/events/issues/mod.rs index 7be18ab..bab2c62 100644 --- a/src/events/issues/mod.rs +++ b/src/events/issues/mod.rs @@ -2,7 +2,7 @@ use std::time::Duration; use crate::{commands::interaction_err, structures::Embeddable, Data}; -use arrayvec::ArrayString; +use aformat::aformat; use poise::serenity_prelude::{ self as serenity, ButtonStyle, Context, CreateActionRow, CreateButton, CreateEmbed, CreateInteractionResponse, Message, Permissions, @@ -44,16 +44,8 @@ pub async fn message(data: &Data, ctx: &Context, message: &Message) { // we can avoid even a stack allocation! (thanks gnome) let ctx_id = message.id.get().to_arraystring(); - // we know the max size so we don't need to allocate. - // 20 + 6 - let mut remove_id = ArrayString::<26>::new(); - remove_id.push_str(&ctx_id); - remove_id.push_str("delete"); - - // 20 + 9 - let mut hide_body_id = ArrayString::<29>::new(); - hide_body_id.push_str(&ctx_id); - hide_body_id.push_str("hide_body"); + let remove_id = aformat!("{ctx_id}delete"); + let hide_body_id = aformat!("{ctx_id}hide_body"); let remove = CreateActionRow::Buttons(vec![CreateButton::new(&*remove_id) .label("delete")