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:
FromStr
cargo 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
, usize
f32
, f64
bool
, char
, String
Standard Library Types:
IpAddr
, Ipv4Addr
, Ipv6Addr
, SocketAddr
, SocketAddrV4
, SocketAddrV6
PathBuf
NonZero*
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.