tlsn_core/attestation/
extension.rs1use std::error::Error;
2
3use serde::{Deserialize, Serialize};
4
5use crate::hash::impl_domain_separator;
6
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
9pub struct Extension {
10 pub id: Vec<u8>,
12 pub value: Vec<u8>,
14}
15
16impl_domain_separator!(Extension);
17
18#[derive(Debug, thiserror::Error)]
20#[error("invalid extension: {reason}")]
21pub struct InvalidExtension {
22 reason: Box<dyn Error + Send + Sync + 'static>,
23}
24
25impl InvalidExtension {
26 pub fn new<E>(reason: E) -> Self
28 where
29 E: Into<Box<dyn Error + Send + Sync + 'static>>,
30 {
31 Self {
32 reason: reason.into(),
33 }
34 }
35}