Raw string literals
diff --git a/src/lib.rs b/src/lib.rs
index d8a872d..879ccfe 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -180,6 +180,14 @@
     pub fn integer(s: &str) -> Literal {
         Literal(imp::Literal::integer(s))
     }
+
+    pub fn raw_string(s: &str, pounds: usize) -> Literal {
+        Literal(imp::Literal::raw_string(s, pounds))
+    }
+
+    pub fn raw_byte_string(s: &str, pounds: usize) -> Literal {
+        Literal(imp::Literal::raw_byte_string(s, pounds))
+    }
 }
 
 macro_rules! froms {
diff --git a/src/stable.rs b/src/stable.rs
index 3c93888..339797e 100644
--- a/src/stable.rs
+++ b/src/stable.rs
@@ -256,6 +256,26 @@
     pub fn integer(s: &str) -> Literal {
         Literal(s.to_string())
     }
+
+    pub fn raw_string(s: &str, pounds: usize) -> Literal {
+        let mut ret = format!("r");
+        ret.extend((0..pounds).map(|_| "#"));
+        ret.push('"');
+        ret.push_str(s);
+        ret.push('"');
+        ret.extend((0..pounds).map(|_| "#"));
+        Literal(ret)
+    }
+
+    pub fn raw_byte_string(s: &str, pounds: usize) -> Literal {
+        let mut ret = format!("rb");
+        ret.extend((0..pounds).map(|_| "#"));
+        ret.push('"');
+        ret.push_str(s);
+        ret.push('"');
+        ret.extend((0..pounds).map(|_| "#"));
+        Literal(ret)
+    }
 }
 
 impl fmt::Display for Literal {