palpo_core/identifiers/server_signing_key_version.rs
1use palpo_macros::IdZst;
2
3/// The version of a [homeserver signing key].
4///
5/// This is an opaque character sequences of `[a-zA-Z0-9_]`. This type is provided simply for its
6/// semantic value.
7///
8/// With the `compat-server-signing-key-version` cargo feature, the validation of this type is
9/// relaxed to accept any string.
10///
11/// [homeserver signing key]: https://spec.matrix.org/latest/server-server-api/#retrieving-server-keys
12#[repr(transparent)]
13#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, IdZst)]
14#[palpo_id(
15 validate = palpo_identifiers_validation::server_signing_key_version::validate,
16)]
17pub struct ServerSigningKeyVersion(str);
18
19// impl KeyName for ServerSigningKeyVersion {
20// fn validate(s: &str) -> Result<(), IdParseError> {
21// palpo_identifiers_validation::server_signing_key_version::validate(s)
22// }
23// }
24
25// impl KeyName for OwnedServerSigningKeyVersion {
26// fn validate(s: &str) -> Result<(), IdParseError> {
27// palpo_identifiers_validation::server_signing_key_version::validate(s)
28// }
29// }