pub trait Constrainable {
    // Required method
    fn kty(&self) -> JsonWebKeyType;
    // Provided methods
    fn alg(&self) -> Option<&JsonWebSignatureAlg> { ... }
    fn algs(&self) -> &[JsonWebSignatureAlg] { ... }
    fn kid(&self) -> Option<&str> { ... }
    fn use_(&self) -> Option<&JsonWebKeyUse> { ... }
}