| Crates.io | foxtive-ntex-multipart |
| lib.rs | foxtive-ntex-multipart |
| version | 0.7.2 |
| created_at | 2025-03-10 02:22:55.523861+00 |
| updated_at | 2025-09-26 00:42:25.157782+00 |
| description | Library For Handling File Uploads Based on Ntex |
| homepage | |
| repository | https://github.com/foxtive/foxtive-ntex |
| max_upload_size | |
| id | 1586070 |
| size | 156,166 |
This is a simple multipart parser built for Ntex.rs
A powerful and flexible multipart form data parser with support for:
FromStrcargo add foxtive-ntex-multipart
cargo add foxtive-ntex-multipart --features uuid
[dependencies]
# Basic installation
foxtive-ntex-multipart = "0.3"
# With UUID support
foxtive-ntex-multipart = { version = "0.3", features = ["uuid"] }
uuid - Enables support for parsing uuid::Uuid from multipart datause foxtive_ntex_multipart::Multipart;
// Parse various types from multipart data
let user_id: i32 = multipart.post("user_id")?;
let username: String = multipart.post("username")?;
let is_active: bool = multipart.post("is_active")?;
let price: f64 = multipart.post("price")?;
// Optional fields return None if missing or empty
let optional_age: Option<i32> = multipart.post("age")?;
let optional_email: Option<String> = multipart.post("email")?;
// Provide default values for missing fields
let priority = multipart.post_or("priority", false);
let timeout = multipart.post_or("timeout", 30);
uuid feature)use uuid::Uuid;
// Parse UUIDs from multipart data
let user_id: Uuid = multipart.post("user_id")?;
let optional_session: Option<Uuid> = multipart.post("session_id")?;
let default_id = multipart.post_or("missing_id", Uuid::new_v4());
use foxtive_ntex_multipart::impl_post_parseable_for_custom_type;
use std::str::FromStr;
#[derive(Debug, PartialEq)]
struct UserId(u64);
impl FromStr for UserId {
type Err = std::num::ParseIntError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(UserId(s.parse()?))
}
}
// Enable multipart parsing for your custom type
impl_post_parseable_for_custom_type!(UserId);
// Now you can use it in multipart parsing
let user_id: UserId = multipart.post("user_id")?;
let optional_id: Option<UserId> = multipart.post("optional_id")?;
The library automatically supports all types that implement FromStr:
Primitive Types:
i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usizef32, f64bool, char, StringStandard Library Types:
IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6PathBufNonZero* integer typesOptional Types:
uuid::Uuid (with uuid feature)Custom Types:
Any type implementing FromStr via the impl_post_parseable_for_custom_type! macro
Contributions, bug reports, and feature requests are welcome! Feel free to open issues or PRs.
This project is licensed under the MIT License.