multipart_rs/
multipart_type.rs

1use std::str::FromStr;
2
3use crate::error::MultipartError;
4
5#[derive(Debug, PartialEq)]
6pub enum MultipartType {
7    // Form-Data - RFC 2388
8    FormData,
9
10    // Mixed - RFC 2046
11    Mixed,
12
13    // Alternative - RFC 2046
14    Alternative,
15
16    // Digest - RFC 2046
17    Digest,
18
19    // Related - RFC 2387
20    Related,
21}
22
23impl FromStr for MultipartType {
24    type Err = MultipartError;
25
26    fn from_str(s: &str) -> Result<Self, Self::Err> {
27        match s.to_lowercase().as_str() {
28            "form-data" => Ok(MultipartType::FormData),
29            "mixed" => Ok(MultipartType::Mixed),
30            "alternative" => Ok(MultipartType::Alternative),
31            "digest" => Ok(MultipartType::Digest),
32            "related" => Ok(MultipartType::Related),
33            _ => Err(MultipartError::InvalidMultipartType),
34        }
35    }
36}