Skip to main content

wowlab_docgen_cli/context/collectors/
mod.rs

1pub mod aliases;
2pub mod cargo;
3pub mod ci;
4pub mod env_vars;
5pub mod package;
6pub mod skills;
7pub mod tidy_rules;
8
9use minijinja::Value;
10use serde::Serialize;
11
12use crate::RenderCtx;
13
14/// A key-value pair to merge into the template context.
15pub type ContextEntry = (&'static str, Value);
16
17/// Collect additional context entries from all backends.
18#[must_use]
19pub fn collect_all(ctx: &RenderCtx<'_>) -> Vec<ContextEntry> {
20    let mut entries = Vec::new();
21
22    entries.extend(aliases::collect(ctx));
23    entries.extend(cargo::collect(ctx));
24    entries.extend(ci::collect(ctx));
25    entries.extend(env_vars::collect(ctx));
26    entries.extend(package::collect(ctx));
27    entries.extend(skills::collect(ctx));
28    entries.extend(tidy_rules::collect(ctx));
29
30    entries
31}
32
33/// Serialize a value into a minijinja `Value`.
34pub fn to_value<T>(v: &T) -> Value
35where
36    T: Serialize,
37{
38    Value::from_serialize(v)
39}