lib

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

commit 18fe4b2fc6f104e28b5823e848f0714be965414e
parent f617fb2c3785197093549ee3e72d73b5a51d52dd
Author: triesap <tyson@radroots.org>
Date:   Sun, 15 Feb 2026 17:51:03 +0000

nostr: apply cargo fmt

Diffstat:
Mnostr/src/client.rs | 24+++++++-----------------
Mnostr/src/codec_adapters.rs | 5++---
Mnostr/src/event_adapters.rs | 4+---
Mnostr/src/events/application_handler.rs | 2+-
Mnostr/src/events/metadata.rs | 16+++++++---------
Mnostr/src/events/mod.rs | 9+++------
Mnostr/src/events/post.rs | 13++++---------
Mnostr/src/identity_profile.rs | 5+----
Mnostr/src/job_adapter.rs | 2+-
Mnostr/src/lib.rs | 72+++++++++++++++++++-----------------------------------------------------
Mnostr/src/nip17.rs | 36+++++++++++-------------------------
Mnostr/src/parse.rs | 5++++-
Mnostr/src/tags.rs | 17++++-------------
Mnostr/src/types.rs | 3+--
Mnostr/src/util.rs | 5+----
15 files changed, 67 insertions(+), 151 deletions(-)

diff --git a/nostr/src/client.rs b/nostr/src/client.rs @@ -10,20 +10,12 @@ use nostr_sdk::{Client, ClientBuilder, ClientOptions}; use radroots_identity::RadrootsIdentity; use crate::error::RadrootsNostrError; +use crate::types::RadrootsNostrMetadata; use crate::types::{ - RadrootsNostrEvent, - RadrootsNostrEventBuilder, - RadrootsNostrEventId, - RadrootsNostrFilter, - RadrootsNostrKeys, - RadrootsNostrMonitor, - RadrootsNostrOutput, - RadrootsNostrRelay, - RadrootsNostrRelayUrl, - RadrootsNostrSubscribeAutoCloseOptions, - RadrootsNostrSubscriptionId, + RadrootsNostrEvent, RadrootsNostrEventBuilder, RadrootsNostrEventId, RadrootsNostrFilter, + RadrootsNostrKeys, RadrootsNostrMonitor, RadrootsNostrOutput, RadrootsNostrRelay, + RadrootsNostrRelayUrl, RadrootsNostrSubscribeAutoCloseOptions, RadrootsNostrSubscriptionId, }; -use crate::types::RadrootsNostrMetadata; #[derive(Clone)] pub struct RadrootsNostrClient { @@ -73,11 +65,9 @@ impl RadrootsNostrClientOptions { #[cfg(not(target_arch = "wasm32"))] pub fn proxy_str(mut self, addr: &str) -> Result<Self, RadrootsNostrError> { - let parsed: SocketAddr = addr - .parse() - .map_err(|err: std::net::AddrParseError| { - RadrootsNostrError::ClientConfigError(err.to_string()) - })?; + let parsed: SocketAddr = addr.parse().map_err(|err: std::net::AddrParseError| { + RadrootsNostrError::ClientConfigError(err.to_string()) + })?; self.proxy = Some(parsed); Ok(self) } diff --git a/nostr/src/codec_adapters.rs b/nostr/src/codec_adapters.rs @@ -3,11 +3,11 @@ use alloc::{string::String, vec::Vec}; use crate::types::RadrootsNostrEvent; +use crate::util::created_at_u32_saturating; use radroots_events_codec::job::{ error::JobParseError, feedback::decode as fb_decode, request::decode as req_decode, result::decode as res_decode, }; -use crate::util::created_at_u32_saturating; fn event_id(e: &RadrootsNostrEvent) -> String { e.id.to_hex() @@ -64,8 +64,7 @@ pub fn to_job_result_metadata( pub fn to_job_feedback_metadata( e: &RadrootsNostrEvent, -) -> Result<radroots_events::job_feedback::RadrootsJobFeedbackEventMetadata, JobParseError> -{ +) -> Result<radroots_events::job_feedback::RadrootsJobFeedbackEventMetadata, JobParseError> { fb_decode::metadata_from_event( event_id(e), author(e), diff --git a/nostr/src/event_adapters.rs b/nostr/src/event_adapters.rs @@ -2,9 +2,7 @@ use radroots_events::post::{RadrootsPost, RadrootsPostEventMetadata}; #[cfg(feature = "events")] use radroots_events::profile::{ - RadrootsProfile, - RadrootsProfileEventMetadata, - RADROOTS_PROFILE_TYPE_TAG_KEY, + RADROOTS_PROFILE_TYPE_TAG_KEY, RadrootsProfile, RadrootsProfileEventMetadata, radroots_profile_type_from_tag_value, }; diff --git a/nostr/src/events/application_handler.rs b/nostr/src/events/application_handler.rs @@ -13,9 +13,9 @@ use crate::tags::radroots_nostr_tag_first_value; #[cfg(feature = "client")] use crate::types::{RadrootsNostrEvent, RadrootsNostrFilter, RadrootsNostrKind}; use crate::types::{RadrootsNostrEventBuilder, RadrootsNostrMetadata}; -use radroots_events::kinds::KIND_APPLICATION_HANDLER; #[cfg(feature = "client")] use core::time::Duration; +use radroots_events::kinds::KIND_APPLICATION_HANDLER; #[derive(Debug, Clone)] pub struct RadrootsNostrApplicationHandlerSpec { diff --git a/nostr/src/events/metadata.rs b/nostr/src/events/metadata.rs @@ -1,22 +1,20 @@ use crate::types::{RadrootsNostrEventBuilder, RadrootsNostrMetadata}; #[cfg(feature = "client")] -use core::time::Duration; -#[cfg(feature = "client")] use crate::client::RadrootsNostrClient; #[cfg(feature = "client")] use crate::error::RadrootsNostrError; #[cfg(feature = "client")] use crate::types::{ - RadrootsNostrEvent, - RadrootsNostrEventId, - RadrootsNostrFilter, - RadrootsNostrKind, - RadrootsNostrOutput, - RadrootsNostrPublicKey, + RadrootsNostrEvent, RadrootsNostrEventId, RadrootsNostrFilter, RadrootsNostrKind, + RadrootsNostrOutput, RadrootsNostrPublicKey, }; +#[cfg(feature = "client")] +use core::time::Duration; -pub fn radroots_nostr_build_metadata_event(md: &RadrootsNostrMetadata) -> RadrootsNostrEventBuilder { +pub fn radroots_nostr_build_metadata_event( + md: &RadrootsNostrMetadata, +) -> RadrootsNostrEventBuilder { RadrootsNostrEventBuilder::metadata(md) } diff --git a/nostr/src/events/mod.rs b/nostr/src/events/mod.rs @@ -1,18 +1,15 @@ +#[cfg(feature = "events")] +pub mod application_handler; pub mod jobs; pub mod metadata; pub mod post; -#[cfg(feature = "events")] -pub mod application_handler; extern crate alloc; use alloc::{string::String, vec::Vec}; use crate::error::RadrootsNostrError; use crate::types::{ - RadrootsNostrEventBuilder, - RadrootsNostrKind, - RadrootsNostrTag, - RadrootsNostrTagKind, + RadrootsNostrEventBuilder, RadrootsNostrKind, RadrootsNostrTag, RadrootsNostrTagKind, }; pub fn radroots_nostr_build_event( diff --git a/nostr/src/events/post.rs b/nostr/src/events/post.rs @@ -1,18 +1,13 @@ use crate::error::RadrootsNostrError; use crate::types::{ - RadrootsNostrEventBuilder, - RadrootsNostrEventId, - RadrootsNostrFilter, - RadrootsNostrKind, - RadrootsNostrPublicKey, - RadrootsNostrTag, - RadrootsNostrTimestamp, + RadrootsNostrEventBuilder, RadrootsNostrEventId, RadrootsNostrFilter, RadrootsNostrKind, + RadrootsNostrPublicKey, RadrootsNostrTag, RadrootsNostrTimestamp, }; #[cfg(all(feature = "client", feature = "events"))] -use core::time::Duration; -#[cfg(all(feature = "client", feature = "events"))] use crate::client::RadrootsNostrClient; +#[cfg(all(feature = "client", feature = "events"))] +use core::time::Duration; pub fn radroots_nostr_build_post_event(content: impl Into<String>) -> RadrootsNostrEventBuilder { RadrootsNostrEventBuilder::text_note(content) diff --git a/nostr/src/identity_profile.rs b/nostr/src/identity_profile.rs @@ -2,10 +2,7 @@ use crate::client::RadrootsNostrClient; use crate::error::RadrootsNostrError; use crate::events::metadata::radroots_nostr_build_metadata_event; use crate::types::{ - RadrootsNostrEventId, - RadrootsNostrOutput, - RadrootsNostrTag, - RadrootsNostrTagKind, + RadrootsNostrEventId, RadrootsNostrOutput, RadrootsNostrTag, RadrootsNostrTagKind, }; use radroots_events::profile::RadrootsProfileType; use radroots_events_codec::profile::encode::profile_build_tags; diff --git a/nostr/src/job_adapter.rs b/nostr/src/job_adapter.rs @@ -1,8 +1,8 @@ #![forbid(unsafe_code)] +use crate::types::{RadrootsNostrEvent, RadrootsNostrKind}; use radroots_events::kinds::KIND_PROFILE; use radroots_events_codec::job::traits::{JobEventBorrow, JobEventLike}; -use crate::types::{RadrootsNostrEvent, RadrootsNostrKind}; #[derive(Clone, Debug)] pub struct RadrootsNostrEventAdapter<'a> { diff --git a/nostr/src/lib.rs b/nostr/src/lib.rs @@ -11,8 +11,8 @@ pub mod filter; pub mod parse; #[cfg(feature = "client")] pub mod relays; -pub mod types; pub mod tags; +pub mod types; pub mod util; #[cfg(feature = "codec")] @@ -41,37 +41,28 @@ pub mod prelude { #[cfg(feature = "client")] pub use crate::client::{ - radroots_nostr_fetch_event_by_id, + RadrootsNostrClient, RadrootsNostrClientOptions, radroots_nostr_fetch_event_by_id, radroots_nostr_send_event, - RadrootsNostrClientOptions, - RadrootsNostrClient, }; pub use crate::error::{RadrootsNostrError, RadrootsNostrTagsResolveError}; pub use crate::filter::{ - radroots_nostr_filter_kind, - radroots_nostr_filter_new_events, - radroots_nostr_filter_tag, + radroots_nostr_filter_kind, radroots_nostr_filter_new_events, radroots_nostr_filter_tag, radroots_nostr_kind, }; pub use crate::events::{ - jobs::{ - radroots_nostr_build_event_job_feedback, - radroots_nostr_build_event_job_result, - }, + jobs::{radroots_nostr_build_event_job_feedback, radroots_nostr_build_event_job_result}, metadata::radroots_nostr_build_metadata_event, post::{ - radroots_nostr_build_post_event, - radroots_nostr_build_post_reply_event, + radroots_nostr_build_post_event, radroots_nostr_build_post_reply_event, radroots_nostr_post_events_filter, }, }; #[cfg(feature = "events")] pub use crate::events::application_handler::{ - radroots_nostr_build_application_handler_event, - RadrootsNostrApplicationHandlerSpec, + RadrootsNostrApplicationHandlerSpec, radroots_nostr_build_application_handler_event, }; #[cfg(all(feature = "client", feature = "events"))] @@ -79,14 +70,12 @@ pub mod prelude { #[cfg(feature = "client")] pub use crate::events::metadata::{ - radroots_nostr_fetch_metadata_for_author, - radroots_nostr_post_metadata_event, + radroots_nostr_fetch_metadata_for_author, radroots_nostr_post_metadata_event, }; #[cfg(all(feature = "client", feature = "codec"))] pub use crate::identity_profile::{ - radroots_nostr_publish_identity_profile, - radroots_nostr_publish_identity_profile_with_type, + radroots_nostr_publish_identity_profile, radroots_nostr_publish_identity_profile_with_type, }; #[cfg(all(feature = "client", feature = "events"))] @@ -95,53 +84,30 @@ pub mod prelude { pub use crate::parse::{radroots_nostr_parse_pubkey, radroots_nostr_parse_pubkeys}; #[cfg(feature = "client")] pub use crate::relays::{ - radroots_nostr_add_relay, - radroots_nostr_connect, - radroots_nostr_remove_relay, + radroots_nostr_add_relay, radroots_nostr_connect, radroots_nostr_remove_relay, }; pub use crate::tags::*; pub use crate::types::{ - RadrootsNostrCoordinate, - RadrootsNostrEvent, - RadrootsNostrEventBuilder, - RadrootsNostrEventId, - RadrootsNostrFilter, - RadrootsNostrFromBech32, - RadrootsNostrKind, - RadrootsNostrKeys, - RadrootsNostrMetadata, - RadrootsNostrPublicKey, - RadrootsNostrRelayUrl, - RadrootsNostrSecretKey, - RadrootsNostrSecp256k1SecretKey, - RadrootsNostrSubscriptionId, - RadrootsNostrTag, - RadrootsNostrTagKind, - RadrootsNostrTagStandard, - RadrootsNostrTimestamp, - RadrootsNostrToBech32, - RadrootsNostrUrl, + RadrootsNostrCoordinate, RadrootsNostrEvent, RadrootsNostrEventBuilder, + RadrootsNostrEventId, RadrootsNostrFilter, RadrootsNostrFromBech32, RadrootsNostrKeys, + RadrootsNostrKind, RadrootsNostrMetadata, RadrootsNostrPublicKey, RadrootsNostrRelayUrl, + RadrootsNostrSecp256k1SecretKey, RadrootsNostrSecretKey, RadrootsNostrSubscriptionId, + RadrootsNostrTag, RadrootsNostrTagKind, RadrootsNostrTagStandard, RadrootsNostrTimestamp, + RadrootsNostrToBech32, RadrootsNostrUrl, }; #[cfg(feature = "client")] pub use crate::types::{ - RadrootsNostrMonitor, - RadrootsNostrMonitorNotification, - RadrootsNostrOutput, - RadrootsNostrRelay, - RadrootsNostrRelayPoolNotification, - RadrootsNostrRelayStatus, + RadrootsNostrMonitor, RadrootsNostrMonitorNotification, RadrootsNostrOutput, + RadrootsNostrRelay, RadrootsNostrRelayPoolNotification, RadrootsNostrRelayStatus, RadrootsNostrSubscribeAutoCloseOptions, }; pub use crate::util::radroots_nostr_npub_string; #[cfg(feature = "nip17")] pub use crate::nip17::{ - radroots_nostr_unwrap_gift_wrap, - radroots_nostr_wrap_message, + RadrootsNip17Error, RadrootsNip17Rumor, RadrootsNip17WrapOptions, + radroots_nostr_unwrap_gift_wrap, radroots_nostr_wrap_message, radroots_nostr_wrap_message_file, - RadrootsNip17Error, - RadrootsNip17Rumor, - RadrootsNip17WrapOptions, }; #[cfg(feature = "http")] diff --git a/nostr/src/nip17.rs b/nostr/src/nip17.rs @@ -4,18 +4,10 @@ extern crate alloc; use alloc::{string::String, vec::Vec}; +use nostr::nips::nip59; use nostr::{ - Event, - EventBuilder, - Kind, - NostrSigner, - PublicKey, - Tag, - TagKind, - Timestamp, - UnsignedEvent, + Event, EventBuilder, Kind, NostrSigner, PublicKey, Tag, TagKind, Timestamp, UnsignedEvent, }; -use nostr::nips::nip59; use thiserror::Error; use radroots_events::kinds::{KIND_MESSAGE, KIND_MESSAGE_FILE}; @@ -105,7 +97,9 @@ fn rumor_from_parts( rumor } -fn parse_recipients(recipients: &[radroots_events::message::RadrootsMessageRecipient]) -> Result<Vec<PublicKey>, RadrootsNip17Error> { +fn parse_recipients( + recipients: &[radroots_events::message::RadrootsMessageRecipient], +) -> Result<Vec<PublicKey>, RadrootsNip17Error> { let mut out = Vec::with_capacity(recipients.len()); for recipient in recipients { out.push(recipient.public_key.parse::<PublicKey>()?); @@ -137,8 +131,8 @@ where let mut out = Vec::with_capacity(recipients.len()); for recipient in recipients { - let event = EventBuilder::gift_wrap(signer, &recipient, rumor.clone(), extra_tags.clone()) - .await?; + let event = + EventBuilder::gift_wrap(signer, &recipient, rumor.clone(), extra_tags.clone()).await?; out.push(event); } Ok(out) @@ -197,14 +191,8 @@ where match kind { KIND_MESSAGE => { - let metadata = message_decode::metadata_from_event( - id, - author, - published_at, - kind, - content, - tags, - )?; + let metadata = + message_decode::metadata_from_event(id, author, published_at, kind, content, tags)?; Ok(RadrootsNip17Rumor::Message(metadata)) } KIND_MESSAGE_FILE => { @@ -230,13 +218,11 @@ mod tests { use radroots_events::message_file::{RadrootsMessageFile, RadrootsMessageFileDimensions}; fn sender_keys() -> Keys { - Keys::parse("6b911fd37cdf5c81d4c0adb1ab7fa822ed253ab0ad9aa18d77257c88b29b718e") - .unwrap() + Keys::parse("6b911fd37cdf5c81d4c0adb1ab7fa822ed253ab0ad9aa18d77257c88b29b718e").unwrap() } fn receiver_keys() -> Keys { - Keys::parse("7b911fd37cdf5c81d4c0adb1ab7fa822ed253ab0ad9aa18d77257c88b29b718e") - .unwrap() + Keys::parse("7b911fd37cdf5c81d4c0adb1ab7fa822ed253ab0ad9aa18d77257c88b29b718e").unwrap() } #[tokio::test] diff --git a/nostr/src/parse.rs b/nostr/src/parse.rs @@ -15,5 +15,8 @@ pub fn radroots_nostr_parse_pubkey(s: &str) -> Result<RadrootsNostrPublicKey, Pa pub fn radroots_nostr_parse_pubkeys( input: &[String], ) -> Result<Vec<RadrootsNostrPublicKey>, ParseError> { - input.iter().map(|s| radroots_nostr_parse_pubkey(s)).collect() + input + .iter() + .map(|s| radroots_nostr_parse_pubkey(s)) + .collect() } diff --git a/nostr/src/tags.rs b/nostr/src/tags.rs @@ -5,13 +5,8 @@ use nostr::nips::nip04; use crate::error::RadrootsNostrTagsResolveError; use crate::types::{ - RadrootsNostrEvent, - RadrootsNostrKeys, - RadrootsNostrPublicKey, - RadrootsNostrRelayUrl, - RadrootsNostrTag, - RadrootsNostrTagKind, - RadrootsNostrTagStandard, + RadrootsNostrEvent, RadrootsNostrKeys, RadrootsNostrPublicKey, RadrootsNostrRelayUrl, + RadrootsNostrTag, RadrootsNostrTagKind, RadrootsNostrTagStandard, }; pub fn radroots_nostr_tag_first_value(tag: &RadrootsNostrTag, key: &str) -> Option<String> { @@ -39,9 +34,7 @@ pub fn radroots_nostr_tag_relays_parse( } } -pub fn radroots_nostr_tags_match<'a>( - tag: &'a RadrootsNostrTag, -) -> Option<(&'a str, &'a [String])> { +pub fn radroots_nostr_tags_match<'a>(tag: &'a RadrootsNostrTag) -> Option<(&'a str, &'a [String])> { if let RadrootsNostrTagKind::Custom(Cow::Borrowed(key)) = tag.kind() { Some((key, &tag.as_slice()[1..])) } else { @@ -59,9 +52,7 @@ pub fn radroots_nostr_tag_match_l(tag: &RadrootsNostrTag) -> Option<(&str, f64)> None } -pub fn radroots_nostr_tag_match_location( - tag: &RadrootsNostrTag, -) -> Option<(&str, &str, &str)> { +pub fn radroots_nostr_tag_match_location(tag: &RadrootsNostrTag) -> Option<(&str, &str, &str)> { let values = tag.as_slice(); if values.len() >= 4 && values[0] == "location" { Some((values[1].as_str(), values[2].as_str(), values[3].as_str())) diff --git a/nostr/src/types.rs b/nostr/src/types.rs @@ -19,8 +19,7 @@ pub type RadrootsNostrTimestamp = nostr::Timestamp; pub type RadrootsNostrUrl = nostr::Url; pub use nostr::nips::nip19::{ - FromBech32 as RadrootsNostrFromBech32, - ToBech32 as RadrootsNostrToBech32, + FromBech32 as RadrootsNostrFromBech32, ToBech32 as RadrootsNostrToBech32, }; pub use nostr::secp256k1::SecretKey as RadrootsNostrSecp256k1SecretKey; diff --git a/nostr/src/util.rs b/nostr/src/util.rs @@ -1,8 +1,5 @@ use crate::types::{ - RadrootsNostrEvent, - RadrootsNostrPublicKey, - RadrootsNostrTimestamp, - RadrootsNostrToBech32, + RadrootsNostrEvent, RadrootsNostrPublicKey, RadrootsNostrTimestamp, RadrootsNostrToBech32, }; pub fn radroots_nostr_npub_string(pk: &RadrootsNostrPublicKey) -> Option<String> {