use std::future::Future;
use certmagic::{CertManager, OnDemandConfig, Result, start_maintenance, stop_maintenance};
fn configured_manager() -> CertManager {
CertManager::builder()
.on_demand(
OnDemandConfig::default().with_sync_decision(|name| name.ends_with(".example.com")),
)
.build_or_panic()
}
fn manage_signature<'a>(
manager: &'a CertManager,
domains: &'a [String],
) -> impl Future<Output = Result<()>> + 'a {
manager.manage(domains)
}
fn background_manage_signature<'a>(
manager: &'a CertManager,
domains: &'a [String],
) -> impl Future<Output = Result<()>> + 'a {
manager.manage_in_background(domains)
}
fn maintenance_signatures(manager: &CertManager) {
let observer = start_maintenance(manager);
std::mem::drop(observer);
let _shutdown = stop_maintenance(manager);
}
fn main() {
let _ = (
configured_manager as fn() -> CertManager,
manage_signature,
background_manage_signature,
maintenance_signatures,
);
}