python-betterproto/example.py
2023-08-27 13:22:51 +02:00

36 lines
841 B
Python

# dev tests
# to be deleted later
import betterproto
from dataclasses import dataclass
from typing import List
@dataclass
class Baz(betterproto.Message):
a: str = betterproto.string_field(1)
@dataclass
class Foo(betterproto.Message):
x: int = betterproto.int32_field(1)
y: float = betterproto.double_field(2)
z: List[Baz] = betterproto.message_field(3)
@dataclass
class Bar(betterproto.Message):
foo1: Foo = betterproto.message_field(1)
foo2: Foo = betterproto.message_field(2)
packed: List[int] = betterproto.int64_field(3)
# Serialization has not been changed yet. So nothing unusual here
buffer = bytes(
Bar(
foo1=Foo(1, 2.34),
foo2=Foo(3, 4.56, [Baz("Hi"), Baz("There")]),
packed=[5, 3, 1]
)
)
# Native deserialization happening here
bar = Bar().parse(buffer)
print(bar)