Add rust lint CI job. (#9)
All checks were successful
Check / Check Rust (push) Successful in 20s

Additionally fix the many lint errors that are occurring. (or disable them).

Reviewed-on: #9
Co-authored-by: Drew Galbraith <drew@tiramisu.one>
Co-committed-by: Drew Galbraith <drew@tiramisu.one>
This commit is contained in:
Drew 2025-12-14 09:02:59 +00:00 committed by Drew
parent 311755c812
commit 1a48911745
30 changed files with 177 additions and 108 deletions

View file

@ -122,7 +122,7 @@ fn parse_field(field: &Field) -> TokenStream {
let rep_offset = buf.at::<u32>(yunq::message::field_offset(offset, #ind))?;
let rep_len = buf.at::<u32>(yunq::message::field_offset(offset, #ind) + 4)?;
yunq::message::parse_repeated_message(buf, offset + rep_offset as usize, rep_len as usize, &caps)?
yunq::message::parse_repeated_message(buf, offset + rep_offset as usize, rep_len as usize, caps)?
};
},
}
@ -174,7 +174,7 @@ fn generate_serialize(message: &Message) -> TokenStream {
&self,
buf: &mut yunq::ByteBuffer<N>,
offset: usize,
caps: &mut alloc::vec::Vec<z_cap_t>,
caps: &mut Vec<z_cap_t>,
) -> Result<usize, ZError> {
let num_fields = #num_fields;
let core_size: u32 = (yunq::message::MESSAGE_HEADER_SIZE + 8 * num_fields) as u32;
@ -183,10 +183,10 @@ fn generate_serialize(message: &Message) -> TokenStream {
#(#serializers)*
buf.write_at(offset + 0, yunq::message::MESSAGE_IDENT)?;
buf.write_at(offset, yunq::message::MESSAGE_IDENT)?;
buf.write_at(offset + 4, core_size)?;
buf.write_at(offset + 8, next_extension)?;
buf.write_at(offset + 12, 0 as u32)?;
buf.write_at(offset + 12, 0_u32)?;
Ok(next_extension as usize)
}
}
@ -200,12 +200,12 @@ fn generate_parse(message: &Message) -> TokenStream {
fn parse<const N: usize>(
buf: &yunq::ByteBuffer<N>,
offset: usize,
caps: &alloc::vec::Vec<z_cap_t>,
caps: &[z_cap_t],
) -> Result<Self, ZError>
where
Self: Sized,
{
if buf.at::<u32>(offset + 0)? != yunq::message::MESSAGE_IDENT {
if buf.at::<u32>(offset)? != yunq::message::MESSAGE_IDENT {
mammoth::debug!("Expected IDENT at offest {:#x}, got {:#x}", offset, buf.at::<u32>(offset)?);
return Err(ZError::INVALID_ARGUMENT);
}
@ -303,7 +303,7 @@ fn generate_server_case(method: &Method) -> TokenStream {
#id => {
let req = #req::parse_from_request(byte_buffer, cap_buffer)?;
let resp = self.handler.#name(req)?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
let resp_len = resp.serialize_as_request(0, byte_buffer, cap_buffer)?;
Ok(resp_len)
},
@ -312,7 +312,7 @@ fn generate_server_case(method: &Method) -> TokenStream {
#id => {
let req = #req::parse_from_request(byte_buffer, cap_buffer)?;
self.handler.#name(req)?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
// TODO: Implement serialization for EmptyMessage so this is less hacky.
yunq::message::serialize_error(byte_buffer, ZError::from(0));
Ok(0x10)
@ -321,7 +321,7 @@ fn generate_server_case(method: &Method) -> TokenStream {
(None, Some(_)) => quote! {
#id => {
let resp = self.handler.#name()?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
let resp_len = resp.serialize_as_request(0, byte_buffer, cap_buffer)?;
Ok(resp_len)
},
@ -403,7 +403,7 @@ fn generate_async_server_case(method: &Method) -> TokenStream {
#id => {
let req = #req::parse_from_request(byte_buffer, cap_buffer)?;
let resp = self.handler.#name(req).await?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
let resp_len = resp.serialize_as_request(0, byte_buffer, cap_buffer)?;
Ok(resp_len)
},
@ -412,7 +412,7 @@ fn generate_async_server_case(method: &Method) -> TokenStream {
#id => {
let req = #req::parse_from_request(byte_buffer, cap_buffer)?;
self.handler.#name(req).await?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
// TODO: Implement serialization for EmptyMessage so this is less hacky.
yunq::message::serialize_error(byte_buffer, ZError::from(0));
Ok(0x10)
@ -421,7 +421,7 @@ fn generate_async_server_case(method: &Method) -> TokenStream {
(None, Some(_)) => quote! {
#id => {
let resp = self.handler.#name().await?;
cap_buffer.resize(0, 0);
cap_buffer.clear();
let resp_len = resp.serialize_as_request(0, byte_buffer, cap_buffer)?;
Ok(resp_len)
},
@ -547,6 +547,7 @@ pub fn generate_code(ast: &[Decl]) -> String {
use alloc::vec::Vec;
use mammoth::zion::z_cap_t;
use mammoth::zion::ZError;
#[allow(unused_imports)]
use yunq::ByteBuffer;
use yunq::YunqMessage;