18 lines
435 B
Python
18 lines
435 B
Python
from abc import ABC, abstractmethod
|
|
from typing import Generic, List, TypeVar
|
|
|
|
from .element import Element, RenderedElement, MetaRenderedElement
|
|
from .markup import AttributedText
|
|
|
|
__all__ = ["ElementRenderer"]
|
|
|
|
E = TypeVar("E", bound=Element)
|
|
|
|
class ElementRenderer(ABC, Generic[E]):
|
|
"""
|
|
Knows how to render elements.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def render(self, element: E, width: int) -> RenderedElement:
|
|
pass
|