--- /dev/null
+pub use otter::imports::*;
+
+#[throws(anyhow::Error)]
+fn main(){
+ let mut s = String::new();
+ io::stdin().read_to_string(&mut s)?;
+ let l : shapelib::Library = toml::from_str(&s)?;
+ dbg!(l);
+}
pub use crate::utils::*;
pub use crate::spec::*;
pub use crate::debugreader::DebugReader;
+pub use crate::shapelib;
pub use nix::unistd::Uid;
pub use crate::imports::*;
-#[derive(Deserialize)]
+#[derive(Deserialize,Debug)]
+#[serde(transparent)]
pub struct Library {
pub sections: LinkedHashMap<String, Section>,
}
-#[derive(Deserialize)]
+#[derive(Deserialize,Debug)]
pub struct Section {
pub shape: Box<dyn OutlineSpec>,
pub size: Vec<Coord>,
pub scraper: toml::Value,
}
-#[derive(Deserialize)]
+#[derive(Deserialize,Debug)]
pub struct FileList (Vec<FileEntry>);
-#[derive(Deserialize)]
+#[derive(Deserialize,Debug)]
pub struct FileEntry {
pub filespec: String,
pub desc: Html,
}
-#[typetag::serde(tag="outline")]
-pub trait OutlineSpec {
+#[typetag::deserialize(tag="outline")]
+pub trait OutlineSpec : Debug {
}
+
+#[derive(Deserialize,Debug)]
+pub struct Circle { }
+#[typetag::deserialize]
+impl OutlineSpec for Circle { }