1mod de;
7mod error;
8pub mod opaque;
9mod ser;
10
11pub use de::XdrDeserializer;
12pub use error::{Error, Result};
13pub use ser::XdrSerializer;
14
15use serde::{de::DeserializeOwned, Serialize};
16
17pub fn to_bytes<T: Serialize>(value: &T) -> Result<Vec<u8>> {
19 let mut serializer = XdrSerializer::new();
20 value.serialize(&mut serializer)?;
21 Ok(serializer.into_bytes())
22}
23
24pub fn from_bytes<T: DeserializeOwned>(bytes: &[u8]) -> Result<T> {
26 let mut deserializer = XdrDeserializer::new(bytes);
27 T::deserialize(&mut deserializer)
28}