lib: expose parsing to a NodeCollection

This commit is contained in:
Matt Bilker
2018-09-11 23:27:57 +00:00
parent 8e14e6f12d
commit a8d6556f6a

View File

@@ -309,13 +309,18 @@ impl KbinXml {
kbinxml.from_binary_internal(input)
}
pub fn node_from_binary(input: &[u8]) -> Result<(Node, EncodingType)> {
pub fn node_collection_from_binary(input: &[u8]) -> Result<(NodeCollection, EncodingType)> {
let mut reader = Reader::new(input)?;
let collection = NodeCollection::from_iter(&mut reader).ok_or(KbinErrorKind::InvalidState)?;
let node = collection.as_node()?;
let encoding = reader.encoding();
Ok((collection, encoding))
}
pub fn node_from_binary(input: &[u8]) -> Result<(Node, EncodingType)> {
let (collection, encoding) = Self::node_collection_from_binary(input)?;
let node = collection.as_node()?;
Ok((node, encoding))
}