pub struct SectionData<'a> {
pub content: &'a str,
pub content_size: u16,
pub tag: &'a str,
}
Expand description
A Section
is variable-length data structure common to several binary DAT files.
A Resource
(ie, a Macro or Gearset) is then made out of a repeating pattern of sections.
SectionData
is used to build sections with references to pre-allocated buffers.
To build a section that owns its own data, use Section
.
§Section-using file types
ACQ
, KEYBIND
, MACRO
, and MACROSYS
. See SECTION_BASED_TYPES
.
§Data Structure
0
0 1 2 3 ...
| |--| |- ...
| | \_ null-terminated utf8 string
| \_ u16le content_size
\_ utf8 char section_type
Fields§
§content: &'a str
Data content of the section.
content_size: u16
Length of section content in bytes. Includes terminating null.
tag: &'a str
Single char string data type tag. The meaning of this tag varies by file type. Some tags are reused with different meanings between types.
Implementations§
Source§impl<'a> SectionData<'a>
impl<'a> SectionData<'a>
Sourcepub fn new(tag: &'a str, content: &'a str) -> Result<Self, DATError>
pub fn new(tag: &'a str, content: &'a str) -> Result<Self, DATError>
Builds a new SectionData
with a given tag and content
§Examples
use libxivdat::section::SectionData;
let new_section = SectionData::new("T", "Macro title!").unwrap();
assert_eq!(new_section.tag, "T");
assert_eq!(new_section.content, "Macro title!");
assert_eq!(new_section.content_size, 13);
Trait Implementations§
Source§impl<'a> Clone for SectionData<'a>
impl<'a> Clone for SectionData<'a>
Source§fn clone(&self) -> SectionData<'a>
fn clone(&self) -> SectionData<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a> Debug for SectionData<'a>
impl<'a> Debug for SectionData<'a>
Source§impl<'a> From<&'a Section> for SectionData<'a>
impl<'a> From<&'a Section> for SectionData<'a>
Source§impl From<&SectionData<'_>> for Section
impl From<&SectionData<'_>> for Section
Source§fn from(x: &SectionData<'_>) -> Self
fn from(x: &SectionData<'_>) -> Self
Converts to this type from the input type.
Source§impl From<SectionData<'_>> for Vec<u8>
impl From<SectionData<'_>> for Vec<u8>
Source§fn from(x: SectionData<'_>) -> Self
fn from(x: SectionData<'_>) -> Self
Converts to this type from the input type.
Source§impl<'a> PartialEq for SectionData<'a>
impl<'a> PartialEq for SectionData<'a>
Source§impl<'a> TryFrom<&'a [u8]> for SectionData<'a>
impl<'a> TryFrom<&'a [u8]> for SectionData<'a>
impl<'a> Copy for SectionData<'a>
impl<'a> Eq for SectionData<'a>
impl<'a> StructuralPartialEq for SectionData<'a>
Auto Trait Implementations§
impl<'a> Freeze for SectionData<'a>
impl<'a> RefUnwindSafe for SectionData<'a>
impl<'a> Send for SectionData<'a>
impl<'a> Sync for SectionData<'a>
impl<'a> Unpin for SectionData<'a>
impl<'a> UnwindSafe for SectionData<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more