lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

parse.rs (657B)


      1 use crate::types::{RadrootsNostrFromBech32, RadrootsNostrPublicKey};
      2 
      3 #[derive(Debug, thiserror::Error)]
      4 pub enum ParseError {
      5     #[error("invalid pubkey format: {0}")]
      6     Invalid(String),
      7 }
      8 
      9 pub fn radroots_nostr_parse_pubkey(s: &str) -> Result<RadrootsNostrPublicKey, ParseError> {
     10     RadrootsNostrPublicKey::from_bech32(s)
     11         .or_else(|_| RadrootsNostrPublicKey::from_hex(s))
     12         .map_err(|_| ParseError::Invalid(s.to_string()))
     13 }
     14 
     15 pub fn radroots_nostr_parse_pubkeys(
     16     input: &[String],
     17 ) -> Result<Vec<RadrootsNostrPublicKey>, ParseError> {
     18     input
     19         .iter()
     20         .map(|s| radroots_nostr_parse_pubkey(s))
     21         .collect()
     22 }