fix warnings and criterion in main

This commit is contained in:
Maple 2025-11-13 10:06:58 +01:00
commit 755e5c4747
15 changed files with 33 additions and 56 deletions

View file

@ -126,7 +126,6 @@ fn gen_serialize_data_struct(
let ident = f.ident.as_ref().unwrap();
let ty = &f.ty;
size_content.append_all(quote! {
+ rnex_core::rmc::structures::RmcSerialize::serialize_write_size(&self.#ident)?
@ -259,7 +258,7 @@ pub fn rmc_serialize(input: TokenStream) -> TokenStream {
let mut inner_match_de = quote! {};
let mut inner_match_se = quote! {};
let mut inner_match_len = quote!{};
//let mut inner_match_len = quote!{};
for variant in e.variants {
let Some((_, val)) = variant.discriminant else {

View file

@ -1,7 +1,6 @@
use std::{env, result};
use std::array::TryFromSliceError;
use std::ops::Deref;
use std::str::FromStr;
use json::{object, JsonValue};
use once_cell::sync::Lazy;
use thiserror::Error;
@ -50,7 +49,7 @@ impl Client{
}
async fn do_request(&self, request_data: JsonValue) -> Result<JsonValue>{
let mut request = ureq::post(CLIENT_URI.as_str())
let request = ureq::post(CLIENT_URI.as_str())
.header("X-API-Key", API_KEY.deref())
.content_type("application/json");
let mut response = spawn_blocking(move || request.send(request_data.to_string())).await??;

View file

@ -158,7 +158,6 @@ impl Ticket{
#[cfg(test)]
mod test{
use chrono::{Datelike, Utc};
use crate::kerberos::KerberosDateTime;
#[test]

View file

@ -10,18 +10,8 @@
extern crate self as rust_nex;
use crate::nex::account::Account;
use chrono::{Local, SecondsFormat};
use once_cell::sync::Lazy;
use simplelog::{
ColorChoice, CombinedLogger, Config, LevelFilter, TermLogger, TerminalMode, WriteLogger,
};
use std::fs::File;
use std::net::{Ipv4Addr};
use std::sync::Once;
use std::{env, fs};
use std::hint::black_box;
use criterion::{criterion_group, criterion_main, Criterion};
mod prudp;
pub mod rmc;
@ -118,7 +108,7 @@ static DUMMY: Lazy<AutoMatchmakeParam> = Lazy::new(|| AutoMatchmakeParam{
static DUMMY_SER: Lazy<Vec<u8>> = Lazy::new(|| serialize_to_vec(DUMMY.deref()));
fn serialize_to_vec(r: &impl RmcSerialize) -> Vec<u8>{
let mut vec = r.to_data();
let vec = r.to_data();
vec.unwrap()
}
@ -126,15 +116,6 @@ fn serialize_to_vec(r: &impl RmcSerialize) -> Vec<u8>{
fn read_struct<T: RmcSerialize>(r: &[u8]) -> T{
T::deserialize(&mut Cursor::new(r)).unwrap()
}
fn matchmake_with_param(c: &mut Criterion) {
let raw = DUMMY.deref();
let ser = DUMMY_SER.deref().as_slice();
c.bench_function("mmparam: ser", |b| b.iter(move || serialize_to_vec(black_box(raw))));
c.bench_function("mmparam: de", |b| b.iter(move || read_struct::<AutoMatchmakeParam>(black_box(ser))));
}
criterion_group!(benches, matchmake_with_param);
//criterion_main!(benches);
fn main(){
for _ in 0..10000000 {

View file

@ -171,14 +171,14 @@ mod test {
let stuff = hex::decode("200100000a0106000000028000000100010051b3995774000000a6321c7f78847c1c5e9fb825eb26bd91841f1a40d92fc694159666119cb13527f1463ac48ad42a63e6613ede67041554b1770978112e6f1f3e177a2bfc75933216dbe38f70133a1eb28e2ae32a4b5c4b0c3e3efd4c02907992e259b257270b57a9dbe7792f4721b07f8fafb9e32d50f2555c616a015c0000004b007072756470733a2f5049443d323b7369643d313b73747265616d3d31303b747970653d323b616464726573733d322e3234332e39352e3131333b706f72743d31303030313b4349443d3100000000000100002c153ba51f00000033006272616e63683a6f726967696e2f70726f6a6563742f7775702d61676d6a206275696c643a335f385f31355f323030345f3000").unwrap();
let stuff = RMCResponse::new(&mut Cursor::new(stuff)).unwrap();
let rnex_core::rmc::response::RMCResponseResult::Success { call_id, method_id, data: stuff} = stuff.response_result else {
let rnex_core::rmc::response::RMCResponseResult::Success { .. } = stuff.response_result else {
panic!()
};
// let stuff = hex::decode("0100010051B399577400000085F1736FCFBE93660275A3FE36FED6C2EFC57222AC99A9219CF54170A415B02DF1463AC48AD42A6307813FDE67041554B177097832ED000F892D9551A09F88E9CB0388DC1BC9527CC7384556A3287B2A349ABBF7E34A5A3EC14C2287CC7F78DA616BC3B03A035347FBD2E9A505C8EF42447CD809015F0000004E007072756470733A2F73747265616D3D31303B747970653D323B616464726573733D3139322E3136382E3137382E3132303B706F72743D31303030313B4349443D313B5049443D323B7369643D310000000000010000CDF53AA51F00000033006272616E63683A6F726967696E2F70726F6A6563742F7775702D61676D6A206275696C643A335F385F31355F323030345F3000").unwrap();
// let stuff = hex::decode("0100010051b399577400000037d3d4814d2b16dd546c94a75d32637b45f856b5abe73cf26cfaa235c5f2c1cef1463ac48ad42a637d873fde67041554b177097880cfa7e10bb810eaf686bfb0a0cf3d65b1f476ebc046d0855327986f557dca14fbb8594883c186b863f2206f22baa0309dbcc81da2f883cb2cdc12628ec7fced015c0000004b007072756470733a2f5049443d323b7369643d313b73747265616d3d31303b747970653d323b616464726573733d322e3234332e39352e3131333b706f72743d31303030313b4349443d310000000000010000b7f33aa51f00000033006272616e63683a6f726967696e2f70726f6a6563742f7775702d61676d6a206275696c643a335f385f31355f323030345f3000").unwrap();
let stuff = hex::decode("0100010051b399577400000037d3d4814d2b16dd546c94a75d32637b45f856b5abe73cf26cfaa235c5f2c1cef1463ac48ad42a637d873fde67041554b177097880cfa7e10bb810eaf686bfb0a0cf3d65b1f476ebc046d0855327986f557dca14fbb8594883c186b863f2206f22baa0309dbcc81da2f883cb2cdc12628ec7fced015c0000004b007072756470733a2f5049443d323b7369643d313b73747265616d3d31303b747970653d323b616464726573733d322e3234332e39352e3131333b706f72743d31303030313b4349443d310000000000010000b7f33aa51f00000033006272616e63683a6f726967696e2f70726f6a6563742f7775702d61676d6a206275696c643a335f385f31355f323030345f3000").unwrap();
let data = <(QResult, u32, Vec<u8>, ConnectionData, String) as RmcSerialize>::deserialize(
&mut Cursor::new(stuff),

View file

@ -170,9 +170,8 @@ impl Display for StationUrl{
impl<'a> Into<String> for &'a StationUrl{
fn into(self) -> String {
let mut url = self.to_string();
let url = self.to_string();
url[0..url.len()-1].into()
}
}

View file

@ -471,7 +471,7 @@ mod test {
#[test]
fn test() {
let mut data_orig = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 69, 4, 20];
let data_orig = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 69, 4, 20];
let mut data = data_orig;
let mut rc4: Rc4<U5> =

View file

@ -21,7 +21,7 @@ impl RmcSerialize for Any{
Ok(())
}
fn deserialize(mut reader: &mut impl Read) -> Result<Self> {
fn deserialize(reader: &mut impl Read) -> Result<Self> {
let name = String::deserialize(reader)?;
// also length ?

View file

@ -20,7 +20,7 @@ impl<T: RmcSerialize> RmcSerialize for Vec<T>{
Ok(())
}
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
let len: u32 = reader.read_struct(IS_BIG_ENDIAN)?;
//let mut vec = Vec::with_capacity(len as usize);

View file

@ -10,7 +10,7 @@ impl RmcSerialize for u8{
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -26,7 +26,7 @@ impl RmcSerialize for i8{
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -41,7 +41,7 @@ impl RmcSerialize for u16{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -56,7 +56,7 @@ impl RmcSerialize for i16{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -71,7 +71,7 @@ impl RmcSerialize for u32{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -86,7 +86,7 @@ impl RmcSerialize for i32{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -101,7 +101,7 @@ impl RmcSerialize for u64{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -116,7 +116,7 @@ impl RmcSerialize for i64{
Ok(writer.write_all(bytes_of(self))?)
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]
@ -132,7 +132,7 @@ impl RmcSerialize for f64{
}
#[inline(always)]
fn deserialize(mut reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
fn deserialize(reader: &mut impl Read) -> crate::rmc::structures::Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
#[inline(always)]

View file

@ -17,7 +17,7 @@ impl RmcSerialize for QBuffer{
Ok(())
}
fn deserialize(mut reader: &mut impl Read) -> Result<Self> {
fn deserialize(reader: &mut impl Read) -> Result<Self> {
let size: u16 = reader.read_struct(IS_BIG_ENDIAN)?;
let mut vec = vec![0; size as usize];

View file

@ -31,7 +31,7 @@ impl RmcSerialize for QResult{
Ok(())
}
fn deserialize(mut reader: &mut impl Read) -> Result<Self> {
fn deserialize(reader: &mut impl Read) -> Result<Self> {
Ok(reader.read_struct(IS_BIG_ENDIAN)?)
}
}

View file

@ -25,7 +25,6 @@ struct UserData{
mod test{
use std::io::Cursor;
use bytemuck::from_bytes;
use tokio::io::AsyncReadExt;
use crate::rmc::structures::ranking::{UploadCompetitionData, UserData};
use rnex_core::rmc::structures::RmcSerialize;

View file

@ -1,15 +1,11 @@
use std::any::Any;
use std::cmp::max;
use std::fmt::Arguments;
use std::io;
use std::io::{Cursor, ErrorKind, IoSlice, Read, Write};
use std::ops::Sub;
use bytemuck::bytes_of;
use v_byte_helpers::{IS_BIG_ENDIAN, ReadExtensions};
use crate::rmc::structures;
use crate::rmc::structures::Error::VersionMismatch;
use std::io::{ErrorKind, IoSlice, Read, Write};
use crate::rmc::structures::Result;
#[repr(C, packed)]
struct StructureHeader{
version: u8,
@ -43,6 +39,8 @@ impl Write for OnlyWriteVec<'_> {
#[cfg(feature = "rmc_struct_header")]
pub fn write_struct<T: Write>(writer: &mut T, version: u8, inner_size: u32, pred: impl FnOnce(&mut T) -> Result<()> ) -> Result<()> {
use bytemuck::bytes_of;
writer.write_all(&[version])?;
writer.write_all(bytes_of(&inner_size))?;
@ -55,7 +53,7 @@ pub fn write_struct<T: Write>(writer: &mut T, version: u8, inner_size: u32, pred
#[cfg(not(feature = "rmc_struct_header"))]
pub fn write_struct<T: Write>(writer: &mut T, version: u8, _inner_size: u32, pred: impl FnOnce(&mut T) -> Result<()> ) -> Result<()> {
pub fn write_struct<T: Write>(writer: &mut T, _version: u8, _inner_size: u32, pred: impl FnOnce(&mut T) -> Result<()> ) -> Result<()> {
pred(writer)
}
@ -94,7 +92,10 @@ impl<T: Read> Read for SubRead<'_, T>{
}
#[cfg(feature = "rmc_struct_header")]
pub fn read_struct<T: Sized, R: Read>(mut reader: &mut R, version: u8, pred: impl FnOnce(&mut SubRead<R>) -> Result<T>) -> Result<T> {
pub fn read_struct<T: Sized, R: Read>(reader: &mut R, version: u8, pred: impl FnOnce(&mut SubRead<R>) -> Result<T>) -> Result<T> {
use crate::rmc::structures::Error::VersionMismatch;
use v_byte_helpers::ReadExtensions;
use v_byte_helpers::IS_BIG_ENDIAN;
let ver: u8 = reader.read_struct(IS_BIG_ENDIAN)?;
if ver != version {
@ -107,6 +108,6 @@ pub fn read_struct<T: Sized, R: Read>(mut reader: &mut R, version: u8, pred: imp
}
#[cfg(not(feature = "rmc_struct_header"))]
pub fn read_struct<T: Sized, R: Read>(mut reader: &mut R, version: u8, pred: impl FnOnce(&mut R) -> Result<T>) -> Result<T> {
pub fn read_struct<T: Sized, R: Read>(mut reader: &mut R, _version: u8, pred: impl FnOnce(&mut R) -> Result<T>) -> Result<T> {
Ok(pred(&mut reader)?)
}

View file

@ -5,7 +5,7 @@ use v_byte_helpers::{IS_BIG_ENDIAN, ReadExtensions};
use super::{Result, RmcSerialize};
impl RmcSerialize for String{
fn deserialize(mut reader: &mut impl Read) -> Result<Self> {
fn deserialize(reader: &mut impl Read) -> Result<Self> {
let len: u16 = reader.read_struct(IS_BIG_ENDIAN)?;
if len == 0{
return Ok("".to_string());