Compare commits
2 Commits
5cd81ff3f9
...
a06360de19
Author | SHA1 | Date |
---|---|---|
Anna | a06360de19 | |
Anna | 598c806799 |
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ttmp"
|
name = "ttmp"
|
||||||
version = "2.0.6"
|
version = "2.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
autoexamples = true
|
autoexamples = true
|
||||||
|
|
||||||
|
|
12
src/lib.rs
12
src/lib.rs
|
@ -2,8 +2,8 @@ use std::io::{Read, Seek};
|
||||||
|
|
||||||
use serde::de::Error as _;
|
use serde::de::Error as _;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
use serde_json::{Deserializer, StreamDeserializer};
|
||||||
use serde_json::de::IoRead;
|
use serde_json::de::IoRead;
|
||||||
use serde_json::StreamDeserializer;
|
|
||||||
pub use zip::{read::ZipFile, ZipArchive};
|
pub use zip::{read::ZipFile, ZipArchive};
|
||||||
|
|
||||||
use crate::error::{Error, Result};
|
use crate::error::{Error, Result};
|
||||||
|
@ -15,6 +15,16 @@ pub mod error;
|
||||||
pub(crate) mod tracking_reader;
|
pub(crate) mod tracking_reader;
|
||||||
pub mod ttmp_extractor;
|
pub mod ttmp_extractor;
|
||||||
|
|
||||||
|
pub fn from_value(value: serde_json::Value) -> Result<ManifestKind> {
|
||||||
|
let manifest = if value.is_array() {
|
||||||
|
ManifestKind::V1(serde_json::from_value(value).map_err(Error::InvalidManifest)?)
|
||||||
|
} else {
|
||||||
|
ManifestKind::V2(serde_json::from_value(value).map_err(Error::InvalidManifest)?)
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(manifest)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn from_reader<R: Read + Seek>(reader: R) -> Result<(ManifestKind, ZipArchive<R>)> {
|
pub fn from_reader<R: Read + Seek>(reader: R) -> Result<(ManifestKind, ZipArchive<R>)> {
|
||||||
let mut zip = ZipArchive::new(reader).map_err(Error::Zip)?;
|
let mut zip = ZipArchive::new(reader).map_err(Error::Zip)?;
|
||||||
let manifest = zip.by_name("TTMPL.mpl").map_err(Error::Zip)?;
|
let manifest = zip.by_name("TTMPL.mpl").map_err(Error::Zip)?;
|
||||||
|
|
Loading…
Reference in New Issue