Enable unstable feature doc_auto_cfg

This commit is contained in:
2025-08-14 17:05:53 +08:00
parent b5189695df
commit 243394db6c
5 changed files with 19 additions and 18 deletions

6
Cargo.lock generated
View File

@@ -796,7 +796,7 @@ dependencies = [
[[package]]
name = "msg_tool"
version = "0.1.3"
version = "0.1.4"
dependencies = [
"anyhow",
"byteorder",
@@ -835,9 +835,9 @@ dependencies = [
[[package]]
name = "msg_tool_macro"
version = "0.1.0"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5977a64deff9e0d3a55e15533e8b35ee28dcb3699bbcf74c08fd0064f62a2afe"
checksum = "6d158bb2f378cef024c47e4d0b3a627536ad8615b6237b93684ad05a10404b00"
dependencies = [
"quote",
"syn",

View File

@@ -1,6 +1,6 @@
[package]
name = "msg_tool"
version = "0.1.3"
version = "0.1.4"
edition = "2024"
repository = "https://github.com/lifegpc/msg-tool"
description = "A command-line tool for exporting, importing, packing, and unpacking script files."
@@ -26,7 +26,7 @@ markup5ever = { version = "0.35", optional = true }
markup5ever_rcdom = { version = "0.35", optional = true }
memchr = { version = "2.7", optional = true }
mozjpeg = { version = "0.10", optional = true }
msg_tool_macro = { version = "0.1.0" }
msg_tool_macro = { version = "0.1.4" }
overf = "0.1"
png = { version = "0.17", optional = true }
rand = { version = "0.9", optional = true }

View File

@@ -1,6 +1,6 @@
[package]
name = "msg_tool_macro"
version = "0.1.0"
version = "0.1.4"
edition = "2024"
repository = "https://github.com/lifegpc/msg-tool"
description = "A procedural macro for the msg-tool project."
@@ -15,3 +15,6 @@ artemis-arc = []
[dependencies]
syn = { version = "2", features = ["full"] }
quote = "1"
[package.metadata.docs.rs]
all-features = true

View File

@@ -1,3 +1,4 @@
#![feature(doc_auto_cfg)]
use proc_macro::TokenStream;
use syn::parse::discouraged::Speculative;
use syn::spanned::Spanned;
@@ -197,10 +198,10 @@ pub fn struct_pack_derive(input: TokenStream) -> TokenStream {
}
});
} else if let Some(pstring_type) = pstring_type {
let write_fn = syn::Ident::new(format!("write_{}", pstring_type).as_str(), pstring_type.span());
cur = Some(quote::quote! {
let encoded = crate::utils::encoding::encode_string(encoding, &self.#field_name, true)?;
writer.#write_fn(encoded.len() as #pstring_type)?;
let len = encoded.len() as #pstring_type;
len.pack(writer, big, encoding)?;
writer.write_all(&encoded)?;
});
}
@@ -218,10 +219,9 @@ pub fn struct_pack_derive(input: TokenStream) -> TokenStream {
}
});
} else if let Some(pvec_type) = pvec_type {
let write_fn = syn::Ident::new(format!("write_{}", pvec_type).as_str(), pvec_type.span());
cur = Some(quote::quote! {
let len = self.#field_name.len() as #pvec_type;
writer.#write_fn(len)?;
len.pack(writer, big, encoding)?;
for item in &self.#field_name {
item.pack(writer, big, encoding)?;
}
@@ -381,10 +381,10 @@ pub fn struct_pack_derive(input: TokenStream) -> TokenStream {
}
});
} else if let Some(pstring_type) = pstring_type {
let write_fn = syn::Ident::new(format!("write_{}", pstring_type).as_str(), pstring_type.span());
cur = Some(quote::quote! {
let encoded = crate::utils::encoding::encode_string(encoding, &#field_name, true)?;
writer.#write_fn(encoded.len() as #pstring_type)?;
let len = encoded.len() as #pstring_type;
len.pack(writer, big, encoding)?;
writer.write_all(&encoded)?;
});
}
@@ -402,10 +402,9 @@ pub fn struct_pack_derive(input: TokenStream) -> TokenStream {
}
});
} else if let Some(pvec_type) = pvec_type {
let write_fn = syn::Ident::new(format!("write_{}", pvec_type).as_str(), pvec_type.span());
cur = Some(quote::quote! {
let len = #field_name.len() as #pvec_type;
writer.#write_fn(len)?;
len.pack(writer, big, encoding)?;
for item in &#field_name {
item.pack(writer, big, encoding)?;
}
@@ -587,9 +586,8 @@ pub fn struct_unpack_derive(input: TokenStream) -> TokenStream {
let #field_name = reader.read_fstring(#fixed_string, encoding, #trim)?;
});
} else if let Some(pstring_type) = pstring_type {
let read_fn = syn::Ident::new(format!("read_{}", pstring_type).as_str(), pstring_type.span());
cur = Some(quote::quote! {
let len = reader.#read_fn()? as usize;
let len = <#pstring_type>::unpack(&mut reader, big, encoding)? as usize;
let #field_name = reader.read_exact_vec(len)?;
let #field_name = crate::utils::encoding::decode_to_string(encoding, &#field_name, true)?;
});
@@ -603,9 +601,8 @@ pub fn struct_unpack_derive(input: TokenStream) -> TokenStream {
let #field_name = reader.read_struct_vec(#fixed_vec, big, encoding)?;
});
} else if let Some(pvec_type) = pvec_type {
let read_fn = syn::Ident::new(format!("read_{}", pvec_type).as_str(), pvec_type.span());
cur = Some(quote::quote! {
let len = reader.#read_fn()? as usize;
let len = <#pvec_type>::unpack(&mut reader, big, encoding)? as usize;
let #field_name = reader.read_struct_vec(len, big, encoding)?;
});
}

View File

@@ -1,6 +1,7 @@
//! A Rust library for exporting, importing, packing, and unpacking script files.
//!
//! For more information, please visit the [GitHub repository](https://github.com/lifegpc/msg-tool).
#![feature(doc_auto_cfg)]
pub mod ext;
pub mod format;
pub mod output_scripts;