From 3687db931a830049caf0560a1cad3749f63a5cdd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 14:46:41 +0000 Subject: [PATCH] Bump dependencies and lint --- server/central/src/config.rs | 5 +++-- server/central/src/db/dbimpl.rs | 4 ++-- server/central/src/db/mod.rs | 2 +- server/central/src/game_pinger.rs | 4 ++-- server/central/src/verifier.rs | 13 +++---------- server/central/src/web/guards/decodable.rs | 2 +- server/central/src/web/guards/encrypted_json.rs | 2 +- server/central/src/web/guards/mod.rs | 2 +- server/central/src/web/mod.rs | 6 +++--- server/central/src/web/responders/mod.rs | 8 ++++---- server/central/src/web/routes/featured.rs | 4 ++-- server/central/src/web/routes/game_server.rs | 6 +++--- server/central/src/web/routes/public.rs | 4 ++-- server/derive/src/attrs.rs | 6 +----- server/derive/src/lib.rs | 6 +++--- server/esp/src/types/either.rs | 6 +----- server/game/benchmarks/bench.rs | 4 ++-- server/game/src/client/error.rs | 2 +- server/game/src/client/thread/handlers/game.rs | 2 +- server/game/src/client/thread/handlers/room.rs | 10 ++++++---- server/game/src/client/translator/impls/mod.rs | 4 ++-- server/game/src/client/translator/mod.rs | 2 +- server/game/src/client/unauthorized.rs | 8 ++++---- server/game/src/data/v13/types/crypto.rs | 2 +- server/game/src/managers/level.rs | 15 ++++++--------- server/game/src/managers/role.rs | 2 +- server/game/src/managers/room.rs | 12 ++++-------- server/shared/src/crypto.rs | 4 ++-- server/shared/src/data.rs | 2 +- server/shared/src/logger.rs | 4 ++-- server/shared/src/token_issuer.rs | 2 +- 31 files changed, 68 insertions(+), 87 deletions(-) diff --git a/server/central/src/config.rs b/server/central/src/config.rs index 6f9199c2a..143d8d65b 100644 --- a/server/central/src/config.rs +++ b/server/central/src/config.rs @@ -4,13 +4,14 @@ use std::{ }; use globed_shared::{ + ADMIN_KEY_LENGTH, DEFAULT_GAME_SERVER_PORT, Decodable, Encodable, ServerRole, anyhow::{self, anyhow}, esp::{self, Decodable, Encodable}, - generate_alphanum_string, Decodable, Encodable, ServerRole, ADMIN_KEY_LENGTH, DEFAULT_GAME_SERVER_PORT, + generate_alphanum_string, }; use json_comments::StripComments; use serde::{Deserialize, Serialize}; -use serde_json::{ser::PrettyFormatter, Serializer}; +use serde_json::{Serializer, ser::PrettyFormatter}; /* stinky serde defaults */ diff --git a/server/central/src/db/dbimpl.rs b/server/central/src/db/dbimpl.rs index 7ceed731f..56193ab1b 100644 --- a/server/central/src/db/dbimpl.rs +++ b/server/central/src/db/dbimpl.rs @@ -1,7 +1,7 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH}; -use globed_shared::{debug, AdminPunishUserAction, PunishmentType, ServerUserEntry, UserPunishment}; -use rocket_db_pools::sqlx::{query_as, Result}; +use globed_shared::{AdminPunishUserAction, PunishmentType, ServerUserEntry, UserPunishment, debug}; +use rocket_db_pools::sqlx::{Result, query_as}; use serde::Serialize; use sqlx::{prelude::*, query, query_scalar, sqlite::SqliteRow}; diff --git a/server/central/src/db/mod.rs b/server/central/src/db/mod.rs index eb6b7812c..485332af4 100644 --- a/server/central/src/db/mod.rs +++ b/server/central/src/db/mod.rs @@ -1,7 +1,7 @@ use globed_shared::{error, info}; use rocket::{ - fairing::{self, AdHoc}, Build, Rocket, + fairing::{self, AdHoc}, }; use rocket_db_pools::Database; diff --git a/server/central/src/game_pinger.rs b/server/central/src/game_pinger.rs index 24aa6861e..653978970 100644 --- a/server/central/src/game_pinger.rs +++ b/server/central/src/game_pinger.rs @@ -7,10 +7,10 @@ use std::{ }; use globed_shared::{ - debug, + SyncMutex, debug, esp::{ByteBuffer, ByteBufferExtRead, ByteBufferExtWrite, ByteReader}, rand::{self, Rng}, - warn, SyncMutex, + warn, }; use tokio::net::UdpSocket; diff --git a/server/central/src/verifier.rs b/server/central/src/verifier.rs index ad45977cb..b40ecb6ce 100644 --- a/server/central/src/verifier.rs +++ b/server/central/src/verifier.rs @@ -6,7 +6,7 @@ use std::{ use globed_shared::{ anyhow::bail, - base64::{engine::general_purpose as b64e, Engine as _}, + base64::{Engine as _, engine::general_purpose as b64e}, *, }; @@ -170,20 +170,13 @@ impl AccountVerifier { #[cfg(not(debug_assertions))] trace!( "{} ({} / userid {}): {}", - message.name, - message.account_id, - message.user_id, - message.authcode + message.name, message.account_id, message.user_id, message.authcode ); #[cfg(debug_assertions)] trace!( "{} ({} / userid {}): {} ({})", - message.name, - message.account_id, - message.user_id, - message.authcode, - message.age + message.name, message.account_id, message.user_id, message.authcode, message.age ); } trace!("------------------------------------"); diff --git a/server/central/src/web/guards/decodable.rs b/server/central/src/web/guards/decodable.rs index 64984d81d..1027adf9e 100644 --- a/server/central/src/web/guards/decodable.rs +++ b/server/central/src/web/guards/decodable.rs @@ -2,8 +2,8 @@ use super::*; use globed_shared::esp::{ByteBuffer, ByteBufferExtRead, Decodable, DecodeError}; use rocket::{ - data::{self, FromData, ToByteUnit}, Data, Request, + data::{self, FromData, ToByteUnit}, }; use tokio::io::AsyncReadExt; diff --git a/server/central/src/web/guards/encrypted_json.rs b/server/central/src/web/guards/encrypted_json.rs index a483cf786..adff6f0d6 100644 --- a/server/central/src/web/guards/encrypted_json.rs +++ b/server/central/src/web/guards/encrypted_json.rs @@ -3,8 +3,8 @@ use std::{num::ParseIntError, sync::OnceLock}; use super::*; use globed_shared::{CryptoBox, CryptoBoxError}; use rocket::{ - data::{self, FromData, ToByteUnit}, Data, + data::{self, FromData, ToByteUnit}, }; use serde::de::DeserializeOwned; use tokio::io::AsyncReadExt; diff --git a/server/central/src/web/guards/mod.rs b/server/central/src/web/guards/mod.rs index 8ed8e9a1d..efec2f52f 100644 --- a/server/central/src/web/guards/mod.rs +++ b/server/central/src/web/guards/mod.rs @@ -1,9 +1,9 @@ use std::net::IpAddr; use rocket::{ + Request, http::Status, request::{FromRequest, Outcome}, - Request, }; pub mod check_protocol_; diff --git a/server/central/src/web/mod.rs b/server/central/src/web/mod.rs index e0e20fdfd..0d78cecf5 100644 --- a/server/central/src/web/mod.rs +++ b/server/central/src/web/mod.rs @@ -4,7 +4,7 @@ pub mod responders; pub use guards::*; pub use responders::*; -use rocket::{catch, Request}; +use rocket::{Request, catch}; #[catch(404)] pub fn not_found(_req: &Request) -> &'static str { @@ -33,8 +33,8 @@ pub mod routes { pub use super::*; pub use crate::{db::GlobedDb, state::ServerState}; - pub use rocket::{get, post, State}; - use rocket::{routes, Route}; + use rocket::{Route, routes}; + pub use rocket::{State, get, post}; pub fn build_router() -> Vec { routes![ diff --git a/server/central/src/web/responders/mod.rs b/server/central/src/web/responders/mod.rs index d056cef8b..c74e397c7 100644 --- a/server/central/src/web/responders/mod.rs +++ b/server/central/src/web/responders/mod.rs @@ -1,9 +1,9 @@ use std::error::Error; use rocket::{ + Request, http::Status, response::{Responder, Response}, - Request, }; pub mod maintenance; @@ -13,16 +13,16 @@ pub mod generic; pub use generic::{GenericErrorResponder, WebResult}; pub mod unauthorized_; -pub(crate) use unauthorized_::unauthorized; pub use unauthorized_::UnauthorizedResponder; +pub(crate) use unauthorized_::unauthorized; pub mod bad_request_; -pub(crate) use bad_request_::bad_request; pub use bad_request_::BadRequestResponder; +pub(crate) use bad_request_::bad_request; pub mod not_found_; -pub(crate) use not_found_::not_found; pub use not_found_::NotFoundResponder; +pub(crate) use not_found_::not_found; pub mod encodable; pub use encodable::{CheckedEncodableResponder, EncodableResponder}; diff --git a/server/central/src/web/routes/featured.rs b/server/central/src/web/routes/featured.rs index 869d777dc..80b99a374 100644 --- a/server/central/src/web/routes/featured.rs +++ b/server/central/src/web/routes/featured.rs @@ -1,9 +1,9 @@ use globed_shared::{warn, webhook}; -use rocket::{get, post, serde::json::Json, State}; +use rocket::{State, get, post, serde::json::Json}; use serde::Deserialize; use crate::{ - db::{dbimpl::FeaturedLevelPage, FeaturedLevel, GlobedDb}, + db::{FeaturedLevel, GlobedDb, dbimpl::FeaturedLevelPage}, state::ServerState, web::*, }; diff --git a/server/central/src/web/routes/game_server.rs b/server/central/src/web/routes/game_server.rs index cf5a77d53..5d535f8d2 100644 --- a/server/central/src/web/routes/game_server.rs +++ b/server/central/src/web/routes/game_server.rs @@ -1,12 +1,12 @@ use std::net::IpAddr; use globed_shared::{ - esp::{types::FastString, ByteBuffer, ByteBufferExtWrite}, - logger::debug, GameServerBootData, MAX_SUPPORTED_PROTOCOL, SERVER_MAGIC, + esp::{ByteBuffer, ByteBufferExtWrite, types::FastString}, + logger::debug, }; -use rocket::{post, State}; +use rocket::{State, post}; use crate::{config::UserlistMode, state::ServerState, web::*}; diff --git a/server/central/src/web/routes/public.rs b/server/central/src/web/routes/public.rs index cb52f1d15..1fcbb5d01 100644 --- a/server/central/src/web/routes/public.rs +++ b/server/central/src/web/routes/public.rs @@ -1,12 +1,12 @@ use std::time::{Duration, SystemTime}; use crate::{ - db::{dbimpl::PlayerCountHistoryEntry, GlobedDb}, + db::{GlobedDb, dbimpl::PlayerCountHistoryEntry}, state::ServerState, }; use super::*; -use rocket::{get, serde::json::Json, State}; +use rocket::{State, get, serde::json::Json}; use serde::Serialize; #[derive(Serialize)] diff --git a/server/derive/src/attrs.rs b/server/derive/src/attrs.rs index 28c05c4db..409ee4a4b 100644 --- a/server/derive/src/attrs.rs +++ b/server/derive/src/attrs.rs @@ -11,11 +11,7 @@ pub(crate) struct BitfieldAttributes { impl BitfieldAttributes { pub fn parse(input: &DeriveInput) -> Option { let res = Self::from_derive_input(input).expect("Failed to parse bitfield attributes"); - if res.on.unwrap_or(false) { - Some(res) - } else { - None - } + if res.on.unwrap_or(false) { Some(res) } else { None } } } diff --git a/server/derive/src/lib.rs b/server/derive/src/lib.rs index 511d17749..7514a1a13 100644 --- a/server/derive/src/lib.rs +++ b/server/derive/src/lib.rs @@ -8,8 +8,8 @@ mod encode; use attrs::{BitfieldAttributes, DynamicSizeAttributes, PacketAttributes}; use darling::FromDeriveInput; use proc_macro::{self, Span, TokenStream}; -use quote::{quote, ToTokens}; -use syn::{parse_macro_input, punctuated::Punctuated, Data, DataStruct, DeriveInput, Meta, Token, Type}; +use quote::{ToTokens, quote}; +use syn::{Data, DataStruct, DeriveInput, Meta, Token, Type, parse_macro_input, punctuated::Punctuated}; /// Implements `Encodable` for the given type, allowing you to serialize it into a `ByteBuffer` or a `FastByteBuffer`. /// For `Encodable` to be successfully derived, for structs, all of the members of the struct must also implement `Encodable`. @@ -35,7 +35,7 @@ pub fn derive_encodable(input: TokenStream) -> TokenStream { return quote! { compile_error!("Encodable cannot be derived for unions"); } - .into() + .into(); } }; diff --git a/server/esp/src/types/either.rs b/server/esp/src/types/either.rs index b8b8e180b..1339fc7aa 100644 --- a/server/esp/src/types/either.rs +++ b/server/esp/src/types/either.rs @@ -1,11 +1,7 @@ use crate::*; const fn constmax(a: usize, b: usize) -> usize { - if a >= b { - a - } else { - b - } + if a >= b { a } else { b } } #[derive(Clone, Debug)] diff --git a/server/game/benchmarks/bench.rs b/server/game/benchmarks/bench.rs index 90d709b92..70b336a79 100644 --- a/server/game/benchmarks/bench.rs +++ b/server/game/benchmarks/bench.rs @@ -1,5 +1,5 @@ #![allow(clippy::wildcard_imports, clippy::cast_possible_truncation)] -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, black_box, criterion_group, criterion_main}; use esp::{ByteBuffer, ByteReader}; use globed_game_server::{data::*, make_uninit, managers::LevelManager, new_uninit}; use globed_shared::{ @@ -169,7 +169,7 @@ fn strings(c: &mut Criterion) { buf_long.write_value(&generate_alphanum_string(rand::thread_rng().gen_range(164..512))); } - let mut output = ByteBuffer::with_capacity(buf_long.len() + 1024); + let output = ByteBuffer::with_capacity(buf_long.len() + 1024); c.bench_function("read-string-short", |b| { b.iter(|| { diff --git a/server/game/src/client/error.rs b/server/game/src/client/error.rs index 1a28ab54d..6dae34e4b 100644 --- a/server/game/src/client/error.rs +++ b/server/game/src/client/error.rs @@ -2,7 +2,7 @@ use std::{fmt::Display, time::SystemTimeError}; use crate::{ bridge::CentralBridgeError, - data::{types::ColorParseError, DecodeError}, + data::{DecodeError, types::ColorParseError}, }; use globed_shared::reqwest; diff --git a/server/game/src/client/thread/handlers/game.rs b/server/game/src/client/thread/handlers/game.rs index 401dd11f5..ad7f731cc 100644 --- a/server/game/src/client/thread/handlers/game.rs +++ b/server/game/src/client/thread/handlers/game.rs @@ -1,4 +1,4 @@ -use std::sync::{atomic::Ordering, Arc}; +use std::sync::{Arc, atomic::Ordering}; use super::*; diff --git a/server/game/src/client/thread/handlers/room.rs b/server/game/src/client/thread/handlers/room.rs index 80442056e..94f1f9c68 100644 --- a/server/game/src/client/thread/handlers/room.rs +++ b/server/game/src/client/thread/handlers/room.rs @@ -1,5 +1,5 @@ -use std::borrow::Cow; use crate::webhook::{WebhookChannel, WebhookMessage}; +use std::borrow::Cow; use super::*; @@ -25,7 +25,11 @@ impl ClientThread { }; if let Some(reason) = fail_reason { - return self.send_packet_dynamic(&RoomCreateFailedPacket { reason: Cow::Borrowed(reason) }).await; + return self + .send_packet_dynamic(&RoomCreateFailedPacket { + reason: Cow::Borrowed(reason), + }) + .await; } let room = self @@ -226,8 +230,6 @@ impl ClientThread { room_password, }; - - thread.push_new_message(ServerThreadMessage::BroadcastInvite(invite_packet.clone())).await; } diff --git a/server/game/src/client/translator/impls/mod.rs b/server/game/src/client/translator/impls/mod.rs index 9755e3815..bb90c66b8 100644 --- a/server/game/src/client/translator/impls/mod.rs +++ b/server/game/src/client/translator/impls/mod.rs @@ -5,8 +5,8 @@ mod general; mod room; #[allow(unused)] -pub use super::{Packet, PacketTranslationError, Translatable, CURRENT_PROTOCOL}; +pub use super::{CURRENT_PROTOCOL, Packet, PacketTranslationError, Translatable}; #[allow(unused)] -pub use crate::data::{v13, v_current, Decodable, DynamicSize, Encodable, StaticSize}; +pub use crate::data::{Decodable, DynamicSize, Encodable, StaticSize, v_current, v13}; #[allow(unused)] pub use v_current::{packets::*, types::*}; diff --git a/server/game/src/client/translator/mod.rs b/server/game/src/client/translator/mod.rs index a7810da93..48d839748 100644 --- a/server/game/src/client/translator/mod.rs +++ b/server/game/src/client/translator/mod.rs @@ -27,7 +27,7 @@ use esp::{ByteReader, Decodable, DecodeResult}; -pub use crate::data::{Packet, CURRENT_PROTOCOL}; +pub use crate::data::{CURRENT_PROTOCOL, Packet}; mod error; mod impls; diff --git a/server/game/src/client/unauthorized.rs b/server/game/src/client/unauthorized.rs index c02a9673c..6295a7442 100644 --- a/server/game/src/client/unauthorized.rs +++ b/server/game/src/client/unauthorized.rs @@ -2,19 +2,19 @@ use std::{ borrow::Cow, net::SocketAddrV4, sync::{ - atomic::{AtomicBool, AtomicI32, AtomicU16, AtomicU32, Ordering}, Arc, + atomic::{AtomicBool, AtomicI32, AtomicU16, AtomicU32, Ordering}, }, time::Duration, }; +use globed_shared::{MAX_SUPPORTED_PROTOCOL, ServerUserEntry, should_ignore_error}; #[allow(unused_imports)] use globed_shared::{ - debug, info, + MIN_CLIENT_VERSION, MIN_SUPPORTED_PROTOCOL, SUPPORTED_PROTOCOLS, SyncMutex, debug, info, rand::{self, Rng}, - warn, SyncMutex, MIN_CLIENT_VERSION, MIN_SUPPORTED_PROTOCOL, SUPPORTED_PROTOCOLS, + warn, }; -use globed_shared::{should_ignore_error, ServerUserEntry, MAX_SUPPORTED_PROTOCOL}; use super::*; use crate::{ diff --git a/server/game/src/data/v13/types/crypto.rs b/server/game/src/data/v13/types/crypto.rs index df793ef84..aa6ced6cb 100644 --- a/server/game/src/data/v13/types/crypto.rs +++ b/server/game/src/data/v13/types/crypto.rs @@ -1,7 +1,7 @@ use std::io::Read; use esp::*; -use globed_shared::crypto_box::{PublicKey, KEY_SIZE}; +use globed_shared::crypto_box::{KEY_SIZE, PublicKey}; pub struct CryptoPublicKey(pub PublicKey); diff --git a/server/game/src/managers/level.rs b/server/game/src/managers/level.rs index 814223ce8..5433718e9 100644 --- a/server/game/src/managers/level.rs +++ b/server/game/src/managers/level.rs @@ -1,8 +1,8 @@ use globed_shared::IntMap; use crate::data::{ - types::PlayerData, AssociatedPlayerData, AssociatedPlayerMetadata, BorrowedAssociatedPlayerData, BorrowedAssociatedPlayerMetadata, - GlobedCounterChange, LevelId, PlayerMetadata, + AssociatedPlayerData, AssociatedPlayerMetadata, BorrowedAssociatedPlayerData, BorrowedAssociatedPlayerMetadata, GlobedCounterChange, LevelId, + PlayerMetadata, types::PlayerData, }; #[derive(Default)] @@ -71,14 +71,11 @@ impl LevelManager { } pub fn create_player(&mut self, account_id: i32, invisible: bool) { - self.players.insert( + self.players.insert(account_id, LevelManagerPlayer { account_id, - LevelManagerPlayer { - account_id, - is_invisible: invisible, - ..Default::default() - }, - ); + is_invisible: invisible, + ..Default::default() + }); } fn get_or_create_player(&mut self, account_id: i32) -> &mut LevelManagerPlayer { diff --git a/server/game/src/managers/role.rs b/server/game/src/managers/role.rs index 18ceef283..b749b1408 100644 --- a/server/game/src/managers/role.rs +++ b/server/game/src/managers/role.rs @@ -1,5 +1,5 @@ use crate::data::*; -use globed_shared::{error, warn, GameServerBootData, IntMap, ServerRole, SyncMutex}; +use globed_shared::{GameServerBootData, IntMap, ServerRole, SyncMutex, error, warn}; #[derive(Default)] pub struct RoleManager { diff --git a/server/game/src/managers/room.rs b/server/game/src/managers/room.rs index be8a1ad6f..f4729202f 100644 --- a/server/game/src/managers/room.rs +++ b/server/game/src/managers/room.rs @@ -1,16 +1,16 @@ use std::sync::{ - atomic::{AtomicI32, Ordering}, Arc, OnceLock, + atomic::{AtomicI32, Ordering}, }; use esp::InlineString; use globed_shared::{ - rand::{self, Rng}, IntMap, SyncMutex, SyncMutexGuard, SyncRwLock, + rand::{self, Rng}, }; use crate::{ - data::{LevelId, PlayerPreviewAccountData, RoomInfo, RoomListingInfo, RoomSettings, ROOM_ID_LENGTH}, + data::{LevelId, PlayerPreviewAccountData, ROOM_ID_LENGTH, RoomInfo, RoomListingInfo, RoomSettings}, server::GameServer, }; @@ -208,11 +208,7 @@ impl RoomManager { f(self.get_global()) } else { let room = self.get_room(room_id); - if let Some(room) = room { - f(&room) - } else { - default() - } + if let Some(room) = room { f(&room) } else { default() } } } diff --git a/server/shared/src/crypto.rs b/server/shared/src/crypto.rs index 6aa42f00e..b9cf8d327 100644 --- a/server/shared/src/crypto.rs +++ b/server/shared/src/crypto.rs @@ -1,10 +1,10 @@ use crypto_box::{ - aead::{generic_array::GenericArray, Aead, AeadCore, AeadInPlace, OsRng}, ChaChaBox, PublicKey, SecretKey, + aead::{Aead, AeadCore, AeadInPlace, OsRng, generic_array::GenericArray}, }; use crypto_secretbox::{ - consts::{U24, U32}, KeyInit, XChaCha20Poly1305, + consts::{U24, U32}, }; /// Simpler interface for encryption/decryption diff --git a/server/shared/src/data.rs b/server/shared/src/data.rs index 402a76368..73c9f1c70 100644 --- a/server/shared/src/data.rs +++ b/server/shared/src/data.rs @@ -2,8 +2,8 @@ use std::time::UNIX_EPOCH; use super::*; use argon2::{ - password_hash::{rand_core::OsRng, PasswordHash, PasswordHasher, PasswordVerifier, SaltString}, Argon2, + password_hash::{PasswordHash, PasswordHasher, PasswordVerifier, SaltString, rand_core::OsRng}, }; use esp::{FastString, InlineString}; use serde::{Deserialize, Serialize}; diff --git a/server/shared/src/logger.rs b/server/shared/src/logger.rs index edff691e0..c8b6cf317 100644 --- a/server/shared/src/logger.rs +++ b/server/shared/src/logger.rs @@ -7,10 +7,10 @@ use std::{ }; use colored::Colorize; -use time::{format_description, OffsetDateTime}; +use time::{OffsetDateTime, format_description}; pub use log; -pub use log::{debug, error, info, trace, warn, Level as LogLevel, LevelFilter as LogLevelFilter}; +pub use log::{Level as LogLevel, LevelFilter as LogLevelFilter, debug, error, info, trace, warn}; pub struct Logger { pub format_desc: Vec>, diff --git a/server/shared/src/token_issuer.rs b/server/shared/src/token_issuer.rs index 193b62e76..e2a9a3213 100644 --- a/server/shared/src/token_issuer.rs +++ b/server/shared/src/token_issuer.rs @@ -3,7 +3,7 @@ use std::{ time::{Duration, SystemTime, UNIX_EPOCH}, }; -use base64::{engine::general_purpose as b64e, Engine}; +use base64::{Engine, engine::general_purpose as b64e}; use hmac::{Hmac, KeyInit, Mac}; use sha2::Sha256;