use std::io;
use crate::{
low::v7400::FbxFooter,
pull_parser::{
v7400::{Attributes, Parser},
Result,
},
};
#[derive(Debug)]
pub enum Event<'a, R> {
StartNode(StartNode<'a, R>),
EndNode,
EndFbx(Result<Box<FbxFooter>>),
}
#[derive(Debug)]
pub struct StartNode<'a, R> {
parser: &'a mut Parser<R>,
}
impl<'a, R: 'a + io::Read> StartNode<'a, R> {
#[inline]
#[must_use]
pub(crate) fn new(parser: &'a mut Parser<R>) -> Self {
Self { parser }
}
#[inline]
#[must_use]
pub fn name(&self) -> &str {
self.parser.current_node_name()
}
#[inline]
#[must_use]
pub fn attributes(self) -> Attributes<'a, R> {
Attributes::from_parser(self.parser)
}
}