Skip to content

Commit

Permalink
Fix macro scopes and avoid exporting them unnecessarily
Browse files Browse the repository at this point in the history
  • Loading branch information
zrax committed Dec 7, 2023
1 parent 0038984 commit 09f58ee
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 24 deletions.
29 changes: 11 additions & 18 deletions src/bin/mfs_tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@

#![deny(clippy::all)]
#![deny(clippy::pedantic)]
#![allow(clippy::uninlined_format_args)] // Added in Rust 1.66

use std::fs::File;
use std::io::{Cursor, BufReader, BufWriter, Result};
use std::io::{Cursor, BufReader, BufWriter, Result, Error, ErrorKind};
use std::mem::size_of;
use std::path::{Path, PathBuf};
use std::process::ExitCode;
Expand All @@ -33,7 +34,6 @@ use log::{error, warn};

use moulars::file_srv::Manifest;
use moulars::file_srv::data_cache::cache_clients;
use moulars::general_error;
use moulars::plasma::{StreamRead, PakFile};
use moulars::plasma::file_crypt::EncryptedReader;

Expand Down Expand Up @@ -139,26 +139,20 @@ fn main() -> ExitCode {
fn get_key(key_opt: Option<&str>) -> Result<[u32; 4]> {
if let Some(key_str) = key_opt {
let mut buffer = [0; 16];
match hex::decode_to_slice(key_str, &mut buffer) {
Ok(()) => {
let mut key = [0; 4];
for (src, dest) in buffer.chunks_exact(size_of::<u32>()).zip(key.iter_mut()) {
*dest = u32::from_be_bytes(src.try_into().unwrap());
}
Ok(key)
}
Err(err) => {
Err(general_error!("Invalid key value: {}", err))
}
hex::decode_to_slice(key_str, &mut buffer).map_err(|err| {
Error::new(ErrorKind::Other, format!("Invalid key value: {}", err))
})?;
let mut key = [0; 4];
for (src, dest) in buffer.chunks_exact(size_of::<u32>()).zip(key.iter_mut()) {
*dest = u32::from_be_bytes(src.try_into().unwrap());
}
Ok(key)
} else {
Ok(moulars::plasma::file_crypt::DEFAULT_KEY)
}
}

fn decrypt_file(path: &Path, out_file: Option<&Path>, key_opt: Option<&str>)
-> Result<()>
{
fn decrypt_file(path: &Path, out_file: Option<&Path>, key_opt: Option<&str>) -> Result<()> {
let key = get_key(key_opt)?;
let mut stream = EncryptedReader::new(BufReader::new(File::open(path)?), &key)?;
if let Some(out_filename) = out_file {
Expand All @@ -183,8 +177,7 @@ fn decrypt_file(path: &Path, out_file: Option<&Path>, key_opt: Option<&str>)
Ok(())
}

fn list_pak(path: &Path, key_opt: Option<&str>) -> Result<()>
{
fn list_pak(path: &Path, key_opt: Option<&str>) -> Result<()> {
let key = get_key(key_opt)?;
let file_reader = BufReader::new(File::open(path)?);
let mut stream = BufReader::new(EncryptedReader::new(file_reader, &key)?);
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ pub mod netcli;
pub mod path_utils;

// Shortcut for generating (optionally formatted) general errors as std::io::Error
#[macro_export]
macro_rules! general_error {
($message:literal) => (
::std::io::Error::new(::std::io::ErrorKind::Other, $message)
Expand All @@ -52,3 +51,4 @@ macro_rules! general_error {
::std::io::Error::new(::std::io::ErrorKind::Other, format!($message, $($arg),+))
);
}
pub(crate) use general_error;
2 changes: 1 addition & 1 deletion src/plasma/audio/sound_buffer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ use std::io::{BufRead, Result, Write};

use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};

use crate::derive_creatable;
use crate::plasma::{Key, StreamRead, StreamWrite};
use crate::plasma::creatable::derive_creatable;
use crate::plasma::safe_string::{read_safe_str, write_safe_str, StringFormat};

pub struct SoundBuffer {
Expand Down
2 changes: 1 addition & 1 deletion src/plasma/creatable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ pub(crate) enum ClassID {
Nil = 0x8000,
}

#[macro_export]
macro_rules! derive_creatable {
($name:ident) => {
derive_creatable! { $name @lines[] }
Expand All @@ -133,3 +132,4 @@ macro_rules! derive_creatable {
}
};
}
pub(crate) use derive_creatable;
3 changes: 2 additions & 1 deletion src/plasma/messages/message_with_callbacks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ use std::io::{BufRead, Write, Result};

use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};

use crate::{general_error, derive_creatable};
use crate::general_error;
use crate::plasma::{StreamRead, StreamWrite};
use crate::plasma::Factory;
use crate::plasma::creatable::derive_creatable;
use super::{Message, MessageInterface};

pub struct MessageWithCallbacks {
Expand Down
3 changes: 2 additions & 1 deletion src/plasma/net_common/generic_value.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use num_derive::FromPrimitive;
use num_traits::FromPrimitive;

use crate::{general_error, derive_creatable};
use crate::general_error;
use crate::plasma::{StreamRead, StreamWrite};
use crate::plasma::creatable::derive_creatable;
use crate::plasma::safe_string::{read_safe_str, write_safe_str, StringFormat};

pub enum GenericType {
Expand Down
2 changes: 1 addition & 1 deletion src/plasma/net_messages/net_message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ use std::io::{BufRead, Result, Write};
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use uuid::Uuid;

use crate::plasma::{UnifiedTime, StreamRead, StreamWrite};
use crate::general_error;
use crate::plasma::{UnifiedTime, StreamRead, StreamWrite};

pub struct NetMessage {
content_flags: u32,
Expand Down

0 comments on commit 09f58ee

Please sign in to comment.