use std::borrow::Cow; use secrecy::{Secret, Zeroize}; use crate::{registry, InputType, InputValueError, InputValueResult, Type, Value}; impl Type for Secret { fn type_name() -> Cow<'static, str> { T::type_name() } fn qualified_type_name() -> String { T::qualified_type_name() } fn create_type_info(registry: &mut registry::Registry) -> String { T::create_type_info(registry) } } impl InputType for Secret { fn parse(value: Option) -> InputValueResult { T::parse(value) .map(Secret::new) .map_err(InputValueError::propagate) } fn to_value(&self) -> Value { Value::Null } }