pub enum Token {
RootBegin {
tag: Tag,
count: u32,
},
RootEnd,
Label(LabelIndex),
StructBegin {
tag: Tag,
count: u32,
},
StructEnd,
ListBegin(u32),
ListEnd,
ItemBegin {
tag: Tag,
count: u32,
index: u32,
},
ItemEnd,
Value(SimpleValueRef),
}Expand description
Возможные виды событий, которые могут возникнуть при чтении GFF файла. Отражают появление в потоке значений из файла и структурных единиц (списков, структур, …)
Variants§
RootBegin
Событие о начале разбора GFF-читателем структуры с индексом 0 в GFF файле.
Возникает после чтения заголовка файла, и позиционирования на начало первой (с индексом 0) структуры, но перед ее чтением. Следующим событием может быть:
RootEnd: если корневая структура не содержит полейStructBegin: если первым полем корневой структуры является значение с типомStructListBegin: если первым полем корневой структуры является значение с типомListValue: если первым полем корневой структуры является значение с любым другим типом
Fields
RootEnd
Событие об окончании разбора GFF-читателем структуры с индексом 0 в GFF файле, что сигнализирует о завершении файла.
Это последнее событие при чтении файла, после него следующих событий не будет
Label(LabelIndex)
Событие о начале разбора поля в структуре. После данного события возникают события:
StructBegin: если полем структуры является значение с типомStructListBegin: если полем структуры является значение с типомListValue: если полем структуры является значение с любым другим типом
StructBegin
Событие о начале разбора GFF-читателем любой структуры, кроме самой первой
(для нее используется событие RootBegin).
Возникает после позиционирования на начало любой структуры, кроме первой (с индексом 0), но перед ее чтением. Следующим событием может быть:
StructBegin: если первым полем структуры является значение с типомStructListBegin: если первым полем структуры является значение с типомListValue: если первым полем структуры является значение с любым другим типом
Fields
StructEnd
Событие об окончании разбора GFF-читателем любой структуры, кроме самой первой
(для нее используется событие FileEnd)
ListBegin(u32)
Событие о начале разбора GFF-читателем списка объектов структуры. В параметре содержится количество записей в списке.
Список всегда содержит набор структур, поэтому разбор каждой записи предваряется
событием ItemBegin и завершается событием ItemEnd
ListEnd
Событие об окончании разбора GFF-читателем списка объектов
ItemBegin
Событие о начале разбора GFF-читателем любой структуры внутри списка. В отличие от обычных, такие структуры не имеют метки.
Возникает после позиционирования на начало любой структуры списка. Следующим событием может быть:
ItemEnd: если структура списка не содержит полейStructBegin: если первым полем структуры списка является поле с типомStructListBegin: если первым полем структуры списка является поле с типомListValue: если первым полем структуры списка является поле с любым другим типом
Fields
ItemEnd
Событие об окончании разбора GFF-читателем любой структуры списка
Value(SimpleValueRef)
Поле, представляющее примитивное (не имеющее структуры) значение, хранимое в файле