| Crates.io | moosicbox_profiles |
| lib.rs | moosicbox_profiles |
| version | 0.1.4 |
| created_at | 2024-10-04 03:27:36.014835+00 |
| updated_at | 2025-07-21 19:10:07.251594+00 |
| description | MoosicBox profiles package |
| homepage | |
| repository | https://github.com/MoosicBox/MoosicBox |
| max_upload_size | |
| id | 1396045 |
| size | 53,034 |
A simple profile name management system for the MoosicBox ecosystem, providing basic profile name storage and validation for request handling.
Add this to your Cargo.toml:
[dependencies]
moosicbox_profiles = "0.1.1"
use moosicbox_profiles::PROFILES;
fn main() {
// Add a profile
PROFILES.add("user123".to_string());
// Check if profile exists
if let Some(profile) = PROFILES.get("user123") {
println!("Profile found: {}", profile);
}
// Get all profile names
let all_profiles = PROFILES.names();
println!("All profiles: {:?}", all_profiles);
// Remove a profile
PROFILES.remove("user123");
}
use moosicbox_profiles::api::{ProfileName, ProfileNameUnverified};
use actix_web::{web, HttpResponse, Result};
// Extract verified profile name from request
async fn handler(profile: ProfileName) -> Result<HttpResponse> {
let profile_name: String = profile.into();
Ok(HttpResponse::Ok().json(format!("Hello, {}", profile_name)))
}
// Extract unverified profile name from request
async fn handler_unverified(profile: ProfileNameUnverified) -> Result<HttpResponse> {
let profile_name: String = profile.into();
// Profile name exists in request but may not be registered
Ok(HttpResponse::Ok().json(format!("Profile: {}", profile_name)))
}
The package provides request extractors for Actix Web:
moosicbox-profile headermoosicboxProfile query parameterProfile names are extracted in this order of precedence:
moosicboxProfilemoosicbox-profile400 Bad Request400 Bad Request400 Bad RequestAll operations are thread-safe using RwLock for concurrent access to the profile storage.