Explorar el Código

Convenience wrappers for Punycode and application/x-www-form-urlencoded

Simon Sapin hace 12 años
padre
commit
3eb8318302
Se han modificado 2 ficheros con 17 adiciones y 0 borrados
  1. 8 0
      src/form_urlencoded.rs
  2. 9 0
      src/punycode.rs

+ 8 - 0
src/form_urlencoded.rs

@@ -91,6 +91,14 @@ pub fn parse_bytes(input: &[u8], encoding_override: Option<EncodingRef>,
 }
 
 
+/// Convert a slice of (name, value) pairs
+/// into a string in the `application/x-www-form-urlencoded` format.
+#[inline]
+pub fn serialize_slice(pairs: &[(String, String)]) -> String {
+    serialize(pairs.iter().map(|&(ref n, ref v)| (n.as_slice(), v.as_slice())), None)
+}
+
+
 /// Convert an iterator of (name, value) pairs
 /// into a string in the `application/x-www-form-urlencoded` format.
 ///

+ 9 - 0
src/punycode.rs

@@ -41,6 +41,15 @@ fn adapt(mut delta: u32, num_points: u32, first_time: bool) -> u32 {
 }
 
 
+/// Convert Punycode to an Unicode `String`.
+///
+/// This is a convenience wrapper around `decode`.
+#[inline]
+pub fn decode_to_string(input: &str) -> Option<String> {
+    decode(input).map(|chars| String::from_chars(chars.as_slice()))
+}
+
+
 /// Convert Punycode to Unicode.
 ///
 /// Return None on malformed input or overflow.