| 480 | } |
| 481 | |
| 482 | fn parse_header_values(s: &str) -> syn::Result<(Vec<String>, Vec<String>)> { |
| 483 | let (mut key_vec, mut value_vec) = (vec![], vec![]); |
| 484 | if s.len() <= 0 { |
| 485 | return Ok((key_vec, value_vec)); |
| 486 | } |
| 487 | let s_split = s.split(";"); |
| 488 | for header_str in s_split { |
| 489 | let header_split = header_str.split(":"); |
| 490 | let header_vec: Vec<&str> = header_split.into_iter().collect(); |
| 491 | if header_vec.len() != 2 { |
| 492 | return Err(syn::Error::new( |
| 493 | proc_macro2::Span::call_site(), |
| 494 | format!("headers format is incorrect: {}", header_str), |
| 495 | )); |
| 496 | } |
| 497 | let k = header_vec[0].trim().to_string(); |
| 498 | if k.len() == 0 { |
| 499 | return Err(syn::Error::new( |
| 500 | proc_macro2::Span::call_site(), |
| 501 | format!("headers format is incorrect: {}", header_str), |
| 502 | )); |
| 503 | } |
| 504 | let v = header_vec[1].trim().to_string(); |
| 505 | if v.len() == 0 { |
| 506 | return Err(syn::Error::new( |
| 507 | proc_macro2::Span::call_site(), |
| 508 | format!("headers format is incorrect: {}", header_str), |
| 509 | )); |
| 510 | } |
| 511 | key_vec.push(k); |
| 512 | value_vec.push(v); |
| 513 | } |
| 514 | return Ok((key_vec, value_vec)); |
| 515 | } |
| 516 | |
| 517 | fn is_support_types(t: &str) -> bool { |
| 518 | return match t { |