pub fn take_string(&mut self) -> Result<String, SexpError> {
        let mut e = Sexp::Empty;
        mem::swap(&mut e, self);
        match e {
            Sexp::String(s) => Ok(s),
            _ => Err(format!("Not a string: {}", e).into()),
        }
    }
/// if the expression is a `String`, take it out and swap it with Empty
if the expression is a `String`, take it out and swap it with Empty
if the expression is a ` String ` take it out and swap it with Empty
pub fn take_string(&mut self) -> Result<String, SexpError> {
        let mut e = Sexp::Empty;
        mem::swap(&mut e, self);
        match e {
            Sexp::String(s) => Ok(s),
            _ => Err(format!("Not a string: {}", e).into()),
        }
    }
pub fn take_string ( & mut self ) -> Result < String , SexpError > { let mut e = Sexp :: Empty ; mem :: swap ( & mut e , self ) ; match e { Sexp :: String ( s ) => Ok ( s ) , _ => Err ( format ! ( " " e ) . into ( ) ) , } }
if the expression is a `String`, take it out and swap it with Empty
if the expression is a ` String ` take it out and swap it with Empty
&mut self