bc-xid 0.9.0

Unique, stable, extensible, and verifiable identifiers
Documentation
use anyhow::{ Result, bail };

pub trait HasNickname {
    fn nickname(&self) -> &str;

    fn set_nickname(&mut self, name: impl Into<String>);

    fn add_nickname(&mut self, name: &str) -> Result<()> {
        if !self.nickname().is_empty() {
            bail!("Duplicate nickname");
        }
        if name.is_empty() {
            bail!("Nickname is empty");
        }
        self.set_nickname(name);

        Ok(())
    }
}