commit ad3b345416d17ec75362fbfe82309c8196f5ad4b
parent c083372c36c9ed838dbf3d8742044f97c915ae2b
Author: Ken Sedgwick <ken@bonsai.com>
Date: Tue, 4 Feb 2025 10:36:37 -0800
add relays_iter to bech32_{nprofile,nevent,naddr}
Diffstat:
1 file changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/block.rs b/src/block.rs
@@ -71,6 +71,12 @@ impl bindings::bech32_nprofile {
pub fn pubkey(&self) -> &[u8; 32] {
unsafe { &*(self.pubkey as *const [u8; 32]) }
}
+
+ pub fn relays_iter(&self) -> impl Iterator<Item = &str> {
+ self.relays.relays[0..(self.relays.num_relays as usize)]
+ .iter()
+ .map(|block| block.as_str())
+ }
}
impl bindings::bech32_npub {
@@ -98,6 +104,20 @@ impl bindings::bech32_nevent {
Some(&*(self.pubkey as *const [u8; 32]))
}
}
+
+ pub fn relays_iter(&self) -> impl Iterator<Item = &str> {
+ self.relays.relays[0..(self.relays.num_relays as usize)]
+ .iter()
+ .map(|block| block.as_str())
+ }
+}
+
+impl bindings::bech32_naddr {
+ pub fn relays_iter(&self) -> impl Iterator<Item = &str> {
+ self.relays.relays[0..(self.relays.num_relays as usize)]
+ .iter()
+ .map(|block| block.as_str())
+ }
}
impl<'a> Mention<'a> {
@@ -421,6 +441,8 @@ mod tests {
assert_eq!(p.relays.num_relays, 2);
assert_eq!(p.relays.relays[0].as_str(), "wss://r.x.com");
assert_eq!(p.relays.relays[1].as_str(), "wss://djbas.sadkb.com");
+ let relays: Vec<&str> = p.relays_iter().collect();
+ assert_eq!(relays, vec!["wss://r.x.com", "wss://djbas.sadkb.com"]);
nprofile_check = true;
}
}