Skip to main content

Gff

Struct Gff 

Source
pub struct Gff {
    pub header: Header,
    pub structs: Vec<Struct>,
    pub fields: Vec<Field>,
    pub labels: Vec<Label>,
    pub field_data: Vec<u8>,
    pub field_indices: Vec<u32>,
    pub list_indices: Vec<u32>,
}
Expand description

Описание всей структуры GFF файла, как она хранится в GFF файле

Fields§

§header: Header

Заголовок файла, содержащий метаинформацию о нем: тип содержимого, версию структуры, количество и местоположение структур в файле

§structs: Vec<Struct>

Список структур внутри GFF файла. Структура – группирующий элемент, состоящий из полей, помеченных метками

§fields: Vec<Field>

Список полей из всех структур GFF файла. Каждое поле ссылается на метку и данные, а также имеет некоторый тип

§labels: Vec<Label>

Список меток из всех полей GFF файла. В корректном GFF файле каждая метка должна быть уникальна, однако неуникальность не является фатальной ошибкой – просто неэффективным расходованием места

§field_data: Vec<u8>

Данные для значений полей, которые не влезают в 4 байта и не могут храниться в структуре поля

§field_indices: Vec<u32>

Плоский массив, содержащий индексы полей, которые входят в каждую структуру, содержащую более одного поля. Например, при наличии двух структур, первая из которых ссылается на поля 0 и 1, а вторая на поля 2, 3 и 4, массив может содержать [0, 1, 2, 3, 4] или [2, 3, 4, 0, 1], в зависимости от того, в каком порядке будут записаны структуры

§list_indices: Vec<u32>

Плоский массив индексов структуры, которые входят в списки. Каждый элемент массива описывает или индекс структуры, или количество следующих индексов в массиве, которые относятся к одному списку. Например, если файл содержит два поля-списка, первое из которых состоит из структур 1 и 3, а второй – из структур 0, 2 и 4, то массив может содержать [2, 1, 3, 3, 0, 2, 4] или [3, 0, 2, 4, 2, 1, 3] в зависимости от порядка записи списков. Каждый подсписок начинается с числа, указывающего его размер: в данном примере [2| 1, 3] и [3| 0, 2, 4]

Implementations§

Source§

impl Gff

Source

pub fn read<R: Read + Seek>(reader: &mut R) -> Result<Gff>

Осуществляет чтение GFF формата из указанного источника данных

Source

pub fn write<W: Write>(&self, writer: &mut W) -> Result<()>

Записывает всю GFF структуру в указанный поток

Trait Implementations§

Source§

impl Debug for Gff

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Gff

§

impl RefUnwindSafe for Gff

§

impl Send for Gff

§

impl Sync for Gff

§

impl Unpin for Gff

§

impl UnsafeUnpin for Gff

§

impl UnwindSafe for Gff

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.