is_valid_nickname

Function is_valid_nickname 

Source
pub fn is_valid_nickname(s: &str) -> bool
Expand description

Validates a relay nickname.

A valid nickname consists of 1 to 19 alphanumeric ASCII characters. Nicknames are used to identify relays in a human-readable format.

§Arguments

  • s - The string to validate

§Returns

true if the string is a valid nickname, false otherwise.

§Format

  • Length: 1 to 19 characters
  • Characters: ASCII alphanumeric only (a-z, A-Z, 0-9)
  • No spaces, hyphens, underscores, or special characters

§Example

use stem_rs::util::is_valid_nickname;

// Valid nicknames
assert!(is_valid_nickname("MyRelay"));
assert!(is_valid_nickname("relay123"));
assert!(is_valid_nickname("A")); // Single character is valid
assert!(is_valid_nickname("1234567890123456789")); // 19 chars max

// Invalid nicknames
assert!(!is_valid_nickname("")); // Empty
assert!(!is_valid_nickname("12345678901234567890")); // 20 chars - too long
assert!(!is_valid_nickname("my-relay")); // Hyphens not allowed
assert!(!is_valid_nickname("my_relay")); // Underscores not allowed
assert!(!is_valid_nickname("my relay")); // Spaces not allowed

§This Compiles But Is Wrong

use stem_rs::util::is_valid_nickname;

// Nicknames are NOT case-insensitive identifiers
// "MyRelay" and "myrelay" are different nicknames
let nick1 = "MyRelay";
let nick2 = "myrelay";
assert!(is_valid_nickname(nick1));
assert!(is_valid_nickname(nick2));
// But they refer to different relays!