The associated type should implement the serde::Deserialize trait and own all its data, but I'm getting lifetime errors that make no sense to me when trying to convert a json string into an Output in a function.
pub trait Private<'a> {
type Output: serde::Deserialize<'a>;
}