tlsn_core/config/
verifier.rs1use serde::{Deserialize, Serialize};
4
5use crate::webpki::RootCertStore;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct VerifierConfig {
10 root_store: RootCertStore,
11}
12
13impl VerifierConfig {
14 pub fn builder() -> VerifierConfigBuilder {
16 VerifierConfigBuilder::default()
17 }
18
19 pub fn root_store(&self) -> &RootCertStore {
21 &self.root_store
22 }
23}
24
25#[derive(Debug, Default)]
27pub struct VerifierConfigBuilder {
28 root_store: Option<RootCertStore>,
29}
30
31impl VerifierConfigBuilder {
32 pub fn root_store(mut self, root_store: RootCertStore) -> Self {
34 self.root_store = Some(root_store);
35 self
36 }
37
38 pub fn build(self) -> Result<VerifierConfig, VerifierConfigError> {
40 let root_store = self
41 .root_store
42 .ok_or(ErrorRepr::MissingField { name: "root_store" })?;
43 Ok(VerifierConfig { root_store })
44 }
45}
46
47#[derive(Debug, thiserror::Error)]
49#[error(transparent)]
50pub struct VerifierConfigError(#[from] ErrorRepr);
51
52#[derive(Debug, thiserror::Error)]
53enum ErrorRepr {
54 #[error("missing field: {name}")]
55 MissingField { name: &'static str },
56}