pub struct UserAgent(/* private fields */);Expand description
A validated Bitcoin Core-style user agent string.
This type ensures that user agent strings follow the Bitcoin Core convention
of /name:version/ and are valid at compile time rather than runtime.
§Example
use bitcoin_peers_connection::UserAgent;
use std::str::FromStr;
// Valid user agent
let user_agent = UserAgent::from_str("/bitcoin-peers:0.1.0/").unwrap();
assert_eq!(user_agent.as_str(), "/bitcoin-peers:0.1.0/");
// Create with validation
let user_agent = UserAgent::new("/bitcoin-peers:0.1.0/").unwrap();
// Create from components
let user_agent = UserAgent::from_name_version("bitcoin-peers", "0.1.0");
assert_eq!(user_agent.as_str(), "/bitcoin-peers:0.1.0/");Implementations§
Source§impl UserAgent
impl UserAgent
Sourcepub fn new<S: AsRef<str>>(user_agent: S) -> Result<Self, UserAgentError>
pub fn new<S: AsRef<str>>(user_agent: S) -> Result<Self, UserAgentError>
Creates a new validated user agent from a string.
§Arguments
user_agent- The user agent string to validate
§Returns
Ok(UserAgent)- If the user agent is validErr(UserAgentError)- If the user agent format is invalid
§Example
use bitcoin_peers_connection::UserAgent;
let user_agent = UserAgent::new("/bitcoin-peers:0.1.0/").unwrap();
assert_eq!(user_agent.as_str(), "/bitcoin-peers:0.1.0/");Sourcepub fn from_name_version<S1: AsRef<str>, S2: AsRef<str>>(
name: S1,
version: S2,
) -> Self
pub fn from_name_version<S1: AsRef<str>, S2: AsRef<str>>( name: S1, version: S2, ) -> Self
Creates a user agent from name and version components.
This constructor cannot fail since it creates the string in the correct format.
§Arguments
name- The application nameversion- The application version
§Returns
A validated UserAgent
§Example
use bitcoin_peers_connection::UserAgent;
let user_agent = UserAgent::from_name_version("bitcoin-peers", "0.1.0");
assert_eq!(user_agent.as_str(), "/bitcoin-peers:0.1.0/");Trait Implementations§
impl Eq for UserAgent
impl StructuralPartialEq for UserAgent
Auto Trait Implementations§
impl Freeze for UserAgent
impl RefUnwindSafe for UserAgent
impl Send for UserAgent
impl Sync for UserAgent
impl Unpin for UserAgent
impl UnwindSafe for UserAgent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more