With @register decorator
If the conversion function is hard to reflect as a lambda function, you can write it as a decorator.
from typecasts import casts
import pydantic
@casts.register(pydantic.BaseModel, str)
def pydantic_to_json_string(instance: pydantic.BaseModel) -> str:
"""Convert Pydantic model instance to JSON string."""
return instance.json()
class Robot(pydantic.BaseModel):
"""Robot."""
name: str
robot = Robot(name='Jimbo')
assert casts[Robot, str](robot) == '{"name": "Jimbo"}'