summaryrefslogtreecommitdiff
path: root/src/metadata.rs
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2021-09-04 14:48:36 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2021-09-04 14:48:36 +0100
commit614014041e493e1a4b6d5729320b42af39d89c68 (patch)
tree8f417718b3ac318a883b5e324f2c567914e22426 /src/metadata.rs
parente11811d6425a8caced83fd2d5ebce55b04c6c1c2 (diff)
downloadsubplot-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.rs25
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)?;