]> git.tdb.fi Git - libs/core.git/commitdiff
Rewrite string codec utility functions more compactly
authorMikko Rasa <tdb@tdb.fi>
Thu, 2 Jun 2011 15:15:13 +0000 (18:15 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 2 Jun 2011 15:15:13 +0000 (18:15 +0300)
source/stringcodec/codec.h

index ab2a3ea7c8491edc0297ae81ffddd1ae4e20c23e..a307e2ec8acc3a784d1f57ce9d7ca4516dfff4fc 100644 (file)
@@ -154,9 +154,7 @@ template<class C>
 ustring decode(const std::string &s)
 {
        typename C::Decoder dec;
-       ustring result;
-       dec.decode(s, result);
-       return result;
+       return dec.decode(s);
 }
 
 /** Convenience function that encodes a string. */
@@ -164,24 +162,14 @@ template<class C>
 std::string encode(const ustring &s)
 {
        typename C::Encoder enc;
-       std::string result;
-       enc.encode(s, result);
-       enc.sync(result);
-       return result;
+       return enc.encode(s);
 }
 
 /** Convenience function that transcodes a string from one codec to another. */
 template<class F, class T>
 std::string transcode(const std::string &s)
 {
-       typename F::Decoder from;
-       typename T::Encoder to;
-       ustring temp;
-       from.decode(s, temp);
-       std::string result;
-       to.encode(temp, result);
-       to.sync(result);
-       return result;
+       return encode<T>(decode<F>(s));
 }
 
 /** Creates a codec for an encoding by name.  The caller is responsible for