Files
hooked-containers/src/hooked_containers/events.py
2026-02-21 23:07:30 -06:00

28 lines
486 B
Python

from collections.abc import MutableSequence
from dataclasses import dataclass
from typing import Generic, TypeVar
T = TypeVar("T")
@dataclass(frozen=True)
class ChangeEvent(Generic[T]):
index: int
item: T
path: MutableSequence[int] | None = None
@dataclass(frozen=True)
class AddItemEvent(ChangeEvent[T]):
item: T
@dataclass(frozen=True)
class SetItemEvent(ChangeEvent[T]):
item: T
@dataclass(frozen=True)
class RemoveItemEvent(ChangeEvent[T]):
item: T