diff --git a/dcb-bytes-derive/src/lib.rs b/dcb-bytes-derive/src/lib.rs index 040c692..a3027c6 100644 --- a/dcb-bytes-derive/src/lib.rs +++ b/dcb-bytes-derive/src/lib.rs @@ -1,4 +1,5 @@ -//! Derive macros for [`Bytes`](dcb_bytes::Bytes) +//! Derive macros for `Bytes` +// TODO: Check why we can't link to `Bytes` here? // Imports use quote::ToTokens; diff --git a/dcb-cdrom-xa/src/lib.md b/dcb-cdrom-xa/src/lib.md index 667ffbb..327e280 100644 --- a/dcb-cdrom-xa/src/lib.md +++ b/dcb-cdrom-xa/src/lib.md @@ -1,8 +1,8 @@ # CD-ROM/XA Implementation This crate implements the `CD-ROM/XA Mode 2 Form 1` specification -within the [`CdRom`] struct, which takes an arbitrary reader and -allows access to all of it's sectors. +within the [`CdRomReader`] / [`CdRomWriter`] structs, which takes +an arbitrary reader and allows access to all of it's sectors. # Layout The `CD-ROM/XA Mode 2 Form 1` specification dictates that the diff --git a/dcb-cdrom-xa/src/reader/error.rs b/dcb-cdrom-xa/src/reader/error.rs index 11bb161..8288fd5 100644 --- a/dcb-cdrom-xa/src/reader/error.rs +++ b/dcb-cdrom-xa/src/reader/error.rs @@ -3,7 +3,7 @@ // Imports use crate::sector; -/// Error type for [`CdRom::seek_sector`](super::CdRom::seek_sector) +/// Error type for [`CdRomReader::seek_sector`](super::CdRomReader::seek_sector) #[derive(Debug, thiserror::Error)] #[error("Unable to seek to sector {sector:#x}")] pub struct SeekSectorError { @@ -15,7 +15,7 @@ pub struct SeekSectorError { pub err: std::io::Error, } -/// Error type for [`CdRom::read_nth_sector`](super::CdRom::read_nth_sector) +/// Error type for [`CdRomReader::read_nth_sector`](super::CdRomReader::read_nth_sector) #[derive(Debug, thiserror::Error)] pub enum ReadNthSectorError { /// Unable to seek to sector @@ -27,7 +27,7 @@ pub enum ReadNthSectorError { ReadNext(#[source] ReadSectorError), } -/// Error type for [`CdRom::read_sector`](super::CdRom::read_sector) +/// Error type for [`CdRomReader::read_sector`](super::CdRomReader::read_sector) #[derive(Debug, thiserror::Error)] pub enum ReadSectorError { /// Unable to read sector diff --git a/dcb-cdrom-xa/src/writer/error.rs b/dcb-cdrom-xa/src/writer/error.rs index bc2e347..5575e52 100644 --- a/dcb-cdrom-xa/src/writer/error.rs +++ b/dcb-cdrom-xa/src/writer/error.rs @@ -3,7 +3,7 @@ // Imports use crate::sector; -/// Error type for [`CdRom::write_sector`](super::CdRom::write_sector) +/// Error type for [`CdRomWriter::write_sector`](super::CdRomWriter::write_sector) #[derive(Debug, thiserror::Error)] pub enum WriteSectorError { /// Unable to create sector diff --git a/dcb-drv/src/dir/writer/error.rs b/dcb-drv/src/dir/writer/error.rs index 3e417b9..b00d0c3 100644 --- a/dcb-drv/src/dir/writer/error.rs +++ b/dcb-drv/src/dir/writer/error.rs @@ -3,7 +3,7 @@ // Imports use std::io; -/// Error for [`DirWriter::to_writer`](super::DirWriter::to_writer) +/// Error for [`DirWriter::write_entries`](super::DirWriter::write_entries) #[derive(Debug, thiserror::Error)] pub enum WriteEntriesError { /// Unable to get current sector diff --git a/dcb-exe/src/data/kind.rs b/dcb-exe/src/data/kind.rs index e33de1e..31c0612 100644 --- a/dcb-exe/src/data/kind.rs +++ b/dcb-exe/src/data/kind.rs @@ -27,19 +27,19 @@ impl DataKind { Self::Heuristics } - /// Returns `true` if the data kind is [`Known`]. + /// Returns `true` if the data kind is [`Known`](Self::Known). #[must_use] pub const fn is_known(self) -> bool { matches!(self, Self::Known) } - /// Returns `true` if the data kind is [`Foreign`]. + /// Returns `true` if the data kind is [`Foreign`](Self::Foreign). #[must_use] pub const fn is_foreign(self) -> bool { matches!(self, Self::Foreign) } - /// Returns `true` if the data kind is [`Heuristics`]. + /// Returns `true` if the data kind is [`Heuristics`](Self::Heuristics). #[must_use] pub const fn is_heuristics(self) -> bool { matches!(self, Self::Heuristics) diff --git a/dcb-exe/src/data/table/node/error.rs b/dcb-exe/src/data/table/node/error.rs index 3b9ac39..102fa9e 100644 --- a/dcb-exe/src/data/table/node/error.rs +++ b/dcb-exe/src/data/table/node/error.rs @@ -3,7 +3,7 @@ // Imports use crate::Data; -/// Error for [`DataNode::insert`] +/// Error for [`DataNode::insert`](super::DataNode::insert) #[derive(Debug, thiserror::Error)] pub enum InsertError { /// The data location is not part of this node diff --git a/dcb-exe/src/func/table.rs b/dcb-exe/src/func/table.rs index 6a652ca..3b26cd0 100644 --- a/dcb-exe/src/func/table.rs +++ b/dcb-exe/src/func/table.rs @@ -4,9 +4,9 @@ //! stores all function within the executable. //! //! Typically these functions will be a mix of the known function, -//! available through [`FuncTable::known`] and heuristically +//! available through [`FuncTable::get_known`] and heuristically //! discovered functions through inst references, available -//! through [`FuncTable::search_insts`]. +//! through [`FuncTable::search_instructions`]. // Modules pub mod error; diff --git a/dcb-exe/src/reader/error.rs b/dcb-exe/src/reader/error.rs index 330d751..31958d7 100644 --- a/dcb-exe/src/reader/error.rs +++ b/dcb-exe/src/reader/error.rs @@ -3,7 +3,7 @@ // Imports use crate::{func, header}; -/// Error type for [`Table::deserialize`] +/// Error type for [`ExeReader::deserialize`](super::ExeReader::deserialize) #[derive(Debug, thiserror::Error)] pub enum DeserializeError { /// Unable to seek game file diff --git a/dcb-io/src/game_file.rs b/dcb-io/src/game_file.rs index 0dedfd9..57f46e4 100644 --- a/dcb-io/src/game_file.rs +++ b/dcb-io/src/game_file.rs @@ -7,7 +7,7 @@ pub mod error; use dcb_iso9660::entry::FileReader; // Exports -pub use error::{NewError, ReadFileError}; +pub use error::{NewError, ReadDrvError}; // Imports use dcb_cdrom_xa::CdRomReader; @@ -44,17 +44,17 @@ impl<'a, R> GameFile<'a, R> { impl<'a, R: io::Read + io::Seek> GameFile<'a, R> { /// Reads a game file - pub fn read_drv<'b>(&'b mut self, name: &str) -> Result, ReadFileError> + pub fn read_drv<'b>(&'b mut self, name: &str) -> Result, ReadDrvError> where 'a: 'b, { // Read the root directory - let root_dir = self.filesystem.root_dir().read_dir(self.cdrom).map_err(ReadFileError::ReadRoot)?; + let root_dir = self.filesystem.root_dir().read_dir(self.cdrom).map_err(ReadDrvError::ReadRoot)?; // Get the file - let entry = root_dir.find(name).ok_or(ReadFileError::FindFile)?; + let entry = root_dir.find(name).ok_or(ReadDrvError::FindFile)?; // And read it - entry.read_file(self.cdrom).map_err(ReadFileError::ReadFile) + entry.read_file(self.cdrom).map_err(ReadDrvError::ReadFile) } } diff --git a/dcb-io/src/game_file/error.rs b/dcb-io/src/game_file/error.rs index eb00460..0fbbd80 100644 --- a/dcb-io/src/game_file/error.rs +++ b/dcb-io/src/game_file/error.rs @@ -8,9 +8,9 @@ pub enum NewError { ParseFilesystem(#[source] dcb_iso9660::NewError), } -/// Error for [`GameFile::read_file`](super::GameFile::read_file) +/// Error for [`GameFile::read_drv`](super::GameFile::read_drv) #[derive(Debug, thiserror::Error)] -pub enum ReadFileError { +pub enum ReadDrvError { /// Unable to read filesystem root #[error("Unable to read filesystem root")] ReadRoot(#[source] dcb_iso9660::entry::ReadDirError), diff --git a/dcb-iso9660/src/entry/error.rs b/dcb-iso9660/src/entry/error.rs index 7f5d0b6..5c90779 100644 --- a/dcb-iso9660/src/entry/error.rs +++ b/dcb-iso9660/src/entry/error.rs @@ -34,7 +34,7 @@ pub enum FromReaderError { } -/// Error type for [`Entry::read`](super::Entry::read) +/// Error type for [`DirEntry::read_file`](super::DirEntry::read_file) #[derive(Debug, thiserror::Error)] pub enum ReadFileError { /// Not a file @@ -46,7 +46,7 @@ pub enum ReadFileError { SeekSector(#[source] SeekSectorError), } -/// Error type for [`Entry::read_entries`](super::Entry::read_entries) +/// Error type for [`DirEntry::read_dir`](super::DirEntry::read_dir) #[derive(Debug, thiserror::Error)] pub enum ReadDirError { /// Not a directory diff --git a/dcb-iso9660/src/error.rs b/dcb-iso9660/src/error.rs index 85ae1d4..93bf8c2 100644 --- a/dcb-iso9660/src/error.rs +++ b/dcb-iso9660/src/error.rs @@ -4,7 +4,7 @@ use super::volume_descriptor::{self}; use dcb_cdrom_xa::reader::{ReadSectorError, SeekSectorError}; -/// Error type for [`Filesystem::new`](super::Filesystem::new) +/// Error type for [`FilesystemReader::new`](super::FilesystemReader::new) #[derive(Debug, thiserror::Error)] pub enum NewError { /// Unable to seek to volume descriptor set diff --git a/dcb-iso9660/src/lib.md b/dcb-iso9660/src/lib.md index 2855fc3..3116bd4 100644 --- a/dcb-iso9660/src/lib.md +++ b/dcb-iso9660/src/lib.md @@ -1,7 +1,7 @@ # ISO 9960 Implementation This crate implements the `ISO-9660` (ECMA-119) filesystem specification -within the [`Filesystem`] struct, which takes in a [`CdRom`](dcb_cdrom_xa::CdRom). +within the [`FilesystemReader`] struct, which takes in a [`CdRomReader`](dcb_cdrom_xa::CdRomReader). # Layout The `ISO-9660` filesystem is defines with the following layout: diff --git a/dcb-pak/src/reader.rs b/dcb-pak/src/reader.rs index 074d51f..acea98e 100644 --- a/dcb-pak/src/reader.rs +++ b/dcb-pak/src/reader.rs @@ -6,7 +6,7 @@ pub mod error; // Exports pub use entry::PakEntryReader; -pub use error::FromReaderError; +pub use error::NextEntryError; // Imports use std::io::{self, SeekFrom}; @@ -40,12 +40,12 @@ impl PakFileReader { // Read + Seek impl PakFileReader { /// Returns the next entry - pub fn next_entry(&mut self) -> Result>, FromReaderError> { + pub fn next_entry(&mut self) -> Result>, NextEntryError> { // Seek to our current position - self.reader.seek(SeekFrom::Start(self.cur_pos)).map_err(FromReaderError::SeekNextEntry)?; + self.reader.seek(SeekFrom::Start(self.cur_pos)).map_err(NextEntryError::SeekNextEntry)?; // Try to read an entry - let entry = match PakEntryReader::from_reader(&mut self.reader).map_err(FromReaderError::ReadEntry)? { + let entry = match PakEntryReader::from_reader(&mut self.reader).map_err(NextEntryError::ReadEntry)? { Some(entry) => { // Note: `0x8` is the size of the header. self.cur_pos += 0x8 + u64::from(entry.header().size); diff --git a/dcb-pak/src/reader/entry/error.rs b/dcb-pak/src/reader/entry/error.rs index b07e577..e5442d8 100644 --- a/dcb-pak/src/reader/entry/error.rs +++ b/dcb-pak/src/reader/entry/error.rs @@ -4,7 +4,7 @@ use crate::header; use std::io; -/// Error for [`PakEntry::from_reader`](super::PakEntry::from_reader) +/// Error for [`PakEntryReader::from_reader`](super::PakEntryReader::from_reader) #[derive(Debug, thiserror::Error)] pub enum FromReaderError { /// Unable to read header diff --git a/dcb-pak/src/reader/entry/model3d_set/error.rs b/dcb-pak/src/reader/entry/model3d_set/error.rs index cd8776c..19d6194 100644 --- a/dcb-pak/src/reader/entry/model3d_set/error.rs +++ b/dcb-pak/src/reader/entry/model3d_set/error.rs @@ -5,7 +5,7 @@ use super::model; use dcb_util::null_ascii_string; use std::io; -/// Error for [`Model3dSet::deserialize`](super::Model3dSet::deserialize) +/// Error for [`Model3dSet::from_reader`](super::Model3dSet::from_reader) #[derive(Debug, thiserror::Error)] pub enum FromReaderError { /// Unable to read header diff --git a/dcb-pak/src/reader/error.rs b/dcb-pak/src/reader/error.rs index ec9511d..81c0e15 100644 --- a/dcb-pak/src/reader/error.rs +++ b/dcb-pak/src/reader/error.rs @@ -4,9 +4,9 @@ use crate::reader::entry; use std::io; -/// Error for [`PakFile::deserialize`](super::PakFile::deserialize) +/// Error for [`PakFileReader::next_entry`](super::PakFileReader::next_entry) #[derive(Debug, thiserror::Error)] -pub enum FromReaderError { +pub enum NextEntryError { /// Unable to seek to next entry #[error("Unable to seek to next entry")] SeekNextEntry(#[source] io::Error), diff --git a/dcb-util/Cargo.toml b/dcb-util/Cargo.toml index e1ab221..e37c0b4 100644 --- a/dcb-util/Cargo.toml +++ b/dcb-util/Cargo.toml @@ -6,6 +6,9 @@ edition = "2018" [dependencies] +# Dcb +dcb-bytes = { path = "../dcb-bytes" } + # Util arrayref = "0.3.6" ascii = { version = "1.0.0", features = ["serde"] } diff --git a/dcb/src/card/header.md b/dcb/src/card/header.md index b99a08b..e81866b 100644 --- a/dcb/src/card/header.md +++ b/dcb/src/card/header.md @@ -3,7 +3,7 @@ Header for each card in the table. # Details Each header contains the id of the card, as well as it's type. -| Offset | Size | Type | Name | Details | -| ------ | ---- | ------------ | --------- | ------------------------------------------------ | -| 0x0 | 0x2 | u16 | Card id | This card's ID | -| 0x2 | 0x1 | [`CardType`] | Card type | The card type ([Digimon], [Item] or [Digivolve]) | +| Offset | Size | Type | Name | Details | +| ------ | ---- | ------------ | --------- | ----------------------------------------------------------------------------------------------- | +| 0x0 | 0x2 | u16 | Card id | This card's ID | +| 0x2 | 0x1 | [`CardType`] | Card type | The card type ([Digimon](crate::Digimon), [Item](crate::Item) or [Digivolve](crate::Digivolve)) |