from lodum.core import Dumper
from typing import Any, Callable, Optional, Type
class Dumper(Protocol):
# Primitive types
def dump_int(self, value: int, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_str(self, value: str, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_float(self, value: float, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_bool(self, value: bool, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_bytes(self, value: bytes, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_none(self, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_list(self, value: list, depth: int = 0, seen: Optional[set] = None) -> Any: ...
def dump_dict(self, value: dict, depth: int = 0, seen: Optional[set] = None) -> Any: ...
# Structure orchestration
def begin_struct(self, cls: Type) -> Any: ...
def end_struct(self) -> Any: ...
def field(
self,
name: str,
value: Any,
handler: Callable[[Any, "Dumper", int, Optional[set]], Any],
depth: int = 0,
seen: Optional[set] = None,
) -> None: ...
# List orchestration
def begin_list(self) -> None: ...
def end_list(self) -> Any: ...
def list_item(
self,
value: Any,
handler: Callable[[Any, "Dumper", int, Optional[set]], Any],
depth: int = 0,
seen: Optional[set] = None,
) -> None: ...