ruma_identifiers_validation/key_id.rs
1use std::num::NonZeroU8;
2
3use crate::{Error, KeyName};
4
5pub fn validate<K: KeyName + ?Sized>(s: &str) -> Result<NonZeroU8, Error> {
6 let colon_idx =
7 NonZeroU8::new(s.find(':').ok_or(Error::MissingColon)? as u8).ok_or(Error::MissingColon)?;
8
9 K::validate(&s[colon_idx.get() as usize + 1..])?;
10
11 Ok(colon_idx)
12}