This commit is contained in:
John Lancaster
2026-02-21 18:44:10 -06:00
parent fcc8ad68ae
commit 47aaa2d28e

View File

@@ -13,29 +13,29 @@ class ListChange(Enum):
@dataclass(frozen=True)
class ListChangeEvent(Generic[T]):
class ChangeEvent(Generic[T]):
index: int
@dataclass(frozen=True)
class AddItemEvent(ListChangeEvent[T]):
class AddItemEvent(ChangeEvent[T]):
item: T
@dataclass(frozen=True)
class SetItemEvent(ListChangeEvent[T]):
class SetItemEvent(ChangeEvent[T]):
item: T
@dataclass(frozen=True)
class RemoveItemEvent(ListChangeEvent[T]):
class RemoveItemEvent(ChangeEvent[T]):
item: T
class HookedList(Generic[T], MutableSequence[T]):
_data: MutableSequence[T]
_path: MutableSequence[int]
hook: Callable[[ListChangeEvent[T]], None] | None
hook: Callable[[ChangeEvent[T]], None] | None
def __init__(self, iterable: Iterable[T], path: Sequence[int] | None = None, *, hook=None):
match iterable: