bin: use new to_text_xml function

This commit is contained in:
Matt Bilker
2018-10-29 15:53:27 +00:00
parent bc91024a40
commit a85491459f
2 changed files with 7 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "kbinxml"
version = "0.13.3"
version = "0.13.4"
authors = ["Matt Bilker <me@mbilker.us>"]
[dependencies]

View File

@@ -10,12 +10,12 @@ extern crate quick_xml;
use std::env;
use std::fs::File;
use std::io::{Cursor, Error as IoError, ErrorKind as IoErrorKind, Read, Write, stdout};
use std::io::{Error as IoError, ErrorKind as IoErrorKind, Read, Write, stdout};
use failure::Fail;
use kbinxml::{NodeCollection, Options, Printer};
use minidom::Element;
use quick_xml::{Reader, Writer};
use quick_xml::Reader;
cfg_if! {
if #[cfg(feature = "serde")] {
@@ -68,15 +68,6 @@ fn display_err(err: impl Fail) -> IoError {
IoError::new(IoErrorKind::Other, "Error parsing kbin")
}
fn to_text(element: &Element) -> Result<Vec<u8>, IoError> {
let inner = Cursor::new(Vec::new());
let mut writer = Writer::new_with_indent(inner, b' ', 2);
element.to_writer(&mut writer).map_err(|e| IoError::new(IoErrorKind::Other, format!("{:?}", e)))?;
let buf = writer.into_inner().into_inner();
Ok(buf)
}
fn display_buf(buf: &[u8]) -> Result<(), IoError> {
let stdout = stdout();
stdout.lock().write_all(&buf)?;
@@ -233,10 +224,12 @@ fn main() -> std::io::Result<()> {
if kbinxml::is_binary_xml(&contents) {
Printer::run(&contents).unwrap();
let (element, encoding_original) = kbinxml::element_from_binary(&contents).map_err(display_err)?;
let text_original = to_text(&element)?;
let (collection, _encoding) = kbinxml::from_slice(&contents).map_err(display_err)?;
let text_original = kbinxml::to_text_xml(&collection).map_err(display_err)?;
display_buf(&text_original)?;
let (element, encoding_original) = kbinxml::element_from_binary(&contents).map_err(display_err)?;
let options = Options::with_encoding(encoding_original);
let buf = kbinxml::to_binary_with_options(options, &element).map_err(display_err)?;
compare_slice(&buf, &contents);