chiark / gitweb /
library loading, fixes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 26 Sep 2020 16:10:40 +0000 (17:10 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 26 Sep 2020 16:10:40 +0000 (17:10 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server.toml
src/shapelib.rs

index 38a6401d6d76b9c6cdd490da88480662d5aa7707..2339d31f08fd0cba90730bba1fe7ba0206a51595 100644 (file)
@@ -11,6 +11,8 @@ save_directory = "/home/rustcargo/Rustup/Game/server"
 template_dir = "/home/ian/Rustup/Game/server/templates"
 bundled_sources = "/home/rustcargo/Rustup/Game/server/target/bundled-sources"
 
+shapelibs = [ "/home/ian/Rustup/Game/server/library/*.toml" ]
+
 [log]
 global_level = 'debug'
 
index 7e606c21d95deb39c3b5425cb9db6fe9830b16ae..f58e882e6097bf4a41cd3ee6a41e848dd51b553a 100644 (file)
@@ -312,7 +312,7 @@ pub fn load1(l: &Explicit1) {
 }
 
 impl Config1 {
-  fn resolve(&self) -> Result<Box<dyn Iterator<Item=Explicit1>>, LibraryLoadError> {
+  fn resolve(&self) -> Result<Box<dyn ExactSizeIterator<Item=Explicit1>>, LibraryLoadError> {
     use Config1::*;
     Ok(match self {
       Explicit(e) => Box::new(iter::once(e.clone())),
@@ -361,9 +361,13 @@ impl Config1 {
 #[throws(LibraryLoadError)]
 pub fn load() {
   for l in &config().shapelibs {
-    for e in l.resolve()? {
+    let libs = l.resolve()?;
+    let n = libs.len();
+    for e in libs {
       load1(&e)?;
     }
+    info!("loaded {} shape libraries from {:?}", n, &l);
+          
   }
 }
 
@@ -422,7 +426,7 @@ impl TryFrom<String> for FileList {
       let item_spec = n()?;
       let _r_file_spec = n()?;
       let desc = Html(n()?);
-      assert!(!n().is_err());
+      assert!(n().is_err());
       o.push(FileData{ item_spec, r_file_spec: (), desc  });
     }
     Ok(FileList(o))