use mutf8::mutf8_to_utf8;
use mutf8::utf8_to_mutf8;
macro_rules! assert_owned {
($var:ident, $msg:expr) => {{
use std::borrow::Cow;
if let Cow::Borrowed(_) = $var {
panic!($msg)
}
}};
}
macro_rules! assert_borrowed {
($var:ident, $msg:expr) => {{
use std::borrow::Cow;
if let Cow::Owned(_) = $var {
panic!($msg)
}
}};
}
#[test]
fn ascii_test() {
let data = utf8_to_mutf8(b"value")
.expect("invalid input");
assert_eq!(data.len(), 5);
assert_borrowed!(
data,
"Data not borrowed. [It's just pure ascii which uses the same encoding as utf8]"
);
}
#[test]
fn nul_test() {
let data = utf8_to_mutf8(b"\0")
.expect("invalid input");
assert_eq!(data.len(), 2);
assert_owned!(
data,
"Data not owned. [A nul byte needs two bytes in mutf8]"
);
}