diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-09-04 14:48:36 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-09-04 14:48:36 +0100 |
commit | 614014041e493e1a4b6d5729320b42af39d89c68 (patch) | |
tree | 8f417718b3ac318a883b5e324f2c567914e22426 /src/metadata.rs | |
parent | e11811d6425a8caced83fd2d5ebce55b04c6c1c2 (diff) | |
download | subplot-614014041e493e1a4b6d5729320b42af39d89c68.tar.gz |
tracing: Add a bunch of TRACE level tracing
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'src/metadata.rs')
-rw-r--r-- | src/metadata.rs | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/metadata.rs b/src/metadata.rs index c598bb0..be15380 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -1,11 +1,14 @@ use crate::{resource, Result}; use crate::{Bindings, TemplateSpec}; +use std::fmt::Debug; use std::ops::Deref; use std::path::{Path, PathBuf}; use pandoc_ast::{Inline, Map, MetaValue, Pandoc}; +use tracing::{event, instrument, Level}; + /// Metadata of a document, as needed by Subplot. #[derive(Debug)] pub struct Metadata { @@ -23,26 +26,38 @@ pub struct Metadata { impl Metadata { /// Construct a Metadata from a Document, if possible. + #[instrument(level = "trace", skip(doc))] pub fn new<P>(basedir: P, doc: &Pandoc) -> Result<Metadata> where - P: AsRef<Path>, + P: AsRef<Path> + Debug, { let title = get_title(&doc.meta); let date = get_date(&doc.meta); let bindings_filenames = get_bindings_filenames(basedir.as_ref(), &doc.meta); let functions_filenames = get_functions_filenames(basedir.as_ref(), &doc.meta); + let bibliographies = get_bibliographies(basedir.as_ref(), &doc.meta); + let classes = get_classes(&doc.meta); + event!( + Level::TRACE, + ?title, + ?date, + ?bindings_filenames, + ?functions_filenames, + ?bibliographies, + ?classes, + "Loaded basic metadata" + ); let (template, spec) = if let Some((template, spec)) = get_template_spec(&doc.meta)? { resource::set_template(&template); (Some(template), Some(spec)) } else { (None, None) }; + event!(Level::TRACE, ?template, ?spec, "Loaded template spec"); let mut bindings = Bindings::new(); - let bibliographies = get_bibliographies(basedir.as_ref(), &doc.meta); - let classes = get_classes(&doc.meta); - get_bindings(&bindings_filenames, &mut bindings)?; + event!(Level::TRACE, "Loaded all metadata successfully"); Ok(Metadata { title, date, @@ -281,7 +296,7 @@ mod test_join { fn get_bindings<P>(filenames: &[P], bindings: &mut Bindings) -> Result<()> where - P: AsRef<Path>, + P: AsRef<Path> + Debug, { for filename in filenames { bindings.add_from_file(filename)?; |