async def unicode_type(self, elem):
        """
        Unicode type
        :param elem:
        :return:
        """
        if self.writing:
            await dump_uvarint(self.iobj, len(elem))
            await self.iobj.awrite(bytes(elem, 'utf8'))

        else:
            ivalue = await load_uvarint(self.iobj)
            if ivalue == 0:
                return ''

            fvalue = bytearray(ivalue)
            await self.iobj.areadinto(fvalue)
            return str(fvalue, 'utf8')