fn validate_token()

in src/vtok_rpc/src/api.rs [216:230]


    fn validate_token(token: &schema::Token) -> Result<(), Error> {
        validate_token_pin(token.pin.as_str())?;
        validate_token_label(token.label.as_str())?;
        let mut ids = HashSet::new();
        let mut labels = HashSet::new();
        for k in token.keys.iter() {
            if !ids.insert(k.id) {
                return Err(Error::DuplicateKeyId(k.id));
            }
            if !labels.insert(k.label.as_str()) {
                return Err(Error::DuplicateKeyLabel(k.label.clone()));
            }
        }
        Ok(())
    }