# Path: PyDvi/Tools/Stream.py
# class ByteStream(StandardStream):
#     
#     ##############################################
# 
#     def __init__(self, string_bytes):
# 
#         self._length = len(string_bytes)
#         self.stream = io.BytesIO(string_bytes)
#         # self.seek(0)
# 
#     ##############################################
# 
#     def end_of_stream(self):
#         return self.tell() == self._length


from ..Tools.Stream import ByteStream
            from ..Dvi.DviParser import DviSubroutineParser # Fixme: circular import ?
__all__ = ['VirtualCharacter']

####################################################################################################


####################################################################################################

class VirtualCharacter(object):

    ##############################################

    def __init__(self, char_code, width, dvi):

        self.char_code = char_code
        self.width = width
        self._dvi = dvi
        self._subroutine = None

    ##############################################

    def __repr__(self):

        return "Virtual Character {}".format(self.char_code)

    ##############################################

    @property
    def subroutine(self):

        if self._subroutine is None:

# Path: PyDvi/Tools/Stream.py
# class ByteStream(StandardStream):
#     
#     ##############################################
# 
#     def __init__(self, string_bytes):
# 
#         self._length = len(string_bytes)
#         self.stream = io.BytesIO(string_bytes)
#         # self.seek(0)
# 
#     ##############################################
# 
#     def end_of_stream(self):
#         return self.tell() == self._length


# Path: PyDvi/Font/VirtualCharacter.py
from ..Tools.Stream import ByteStream
            from ..Dvi.DviParser import DviSubroutineParser # Fixme: circular import ?

__all__ = ['VirtualCharacter']

####################################################################################################


####################################################################################################

class VirtualCharacter(object):

    ##############################################

    def __init__(self, char_code, width, dvi):

        self.char_code = char_code
        self.width = width
        self._dvi = dvi
        self._subroutine = None

    ##############################################

    def __repr__(self):

        return "Virtual Character {}".format(self.char_code)

    ##############################################

    @property
    def subroutine(self):

        if self._subroutine is None:

            parser = DviSubroutineParser(ByteStream(self._dvi))