mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 14:36:16 +01:00
Add from_bytes method for PairingFile
This commit is contained in:
@@ -44,14 +44,19 @@ struct RawPairingFile {
|
||||
|
||||
impl PairingFile {
|
||||
pub fn read_from_file(path: impl AsRef<Path>) -> Result<Self, crate::IdeviceError> {
|
||||
let f = std::fs::read_to_string(path)?;
|
||||
let r = match plist::from_bytes::<RawPairingFile>(f.as_bytes()) {
|
||||
let f = std::fs::read(path)?;
|
||||
Self::from_bytes(&f)
|
||||
}
|
||||
|
||||
pub fn from_bytes(bytes: &[u8]) -> Result<Self, crate::IdeviceError> {
|
||||
let r = match ::plist::from_bytes::<RawPairingFile>(bytes) {
|
||||
Ok(r) => r,
|
||||
Err(e) => {
|
||||
warn!("Unable to read raw pairing file to memory: {e:?}");
|
||||
warn!("Unable to convert bytes to raw pairing file: {e:?}");
|
||||
return Err(crate::IdeviceError::UnexpectedResponse);
|
||||
}
|
||||
};
|
||||
|
||||
match r.try_into() {
|
||||
Ok(r) => Ok(r),
|
||||
Err(e) => {
|
||||
@@ -84,20 +89,3 @@ impl TryFrom<RawPairingFile> for PairingFile {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn f1() {
|
||||
let f = std::fs::read_to_string(
|
||||
"/Users/jacksoncoxson/Documents/00008140-0016243626F3001C.mobiledevicepairing",
|
||||
)
|
||||
.unwrap();
|
||||
let p: plist::Dictionary = plist::from_bytes(f.as_bytes()).unwrap();
|
||||
println!("{p:#?}");
|
||||
let p: RawPairingFile = plist::from_bytes(f.as_bytes()).unwrap();
|
||||
println!("{p:#?}");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user