Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve marshaller performance #264

Merged
merged 3 commits into from
Nov 7, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions src/dbus_fast/_private/marshaller.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import cython

from ..signature cimport SignatureTree
from ..signature cimport SignatureTree, SignatureType, Variant


cdef object PACK_UINT32
Expand All @@ -28,16 +28,17 @@ cdef class Marshaller:
)
cdef unsigned int _align(self, unsigned int n)

cpdef write_boolean(self, object boolean, object _type)
cpdef write_boolean(self, object boolean, SignatureType type_)

@cython.locals(
written=cython.uint,
)
cdef unsigned int _write_boolean(self, object boolean)

cpdef write_string(self, object value, object _type)
cpdef write_string(self, object value, SignatureType type_)

@cython.locals(
buf=cython.bytearray,
value_len=cython.uint,
signature_len=cython.uint,
written=cython.uint,
Expand All @@ -49,49 +50,50 @@ cdef class Marshaller:
)
cdef unsigned int _write_signature(self, bytes signature_bytes)

cpdef write_array(self, object array, object type)
cpdef write_array(self, object array, SignatureType type_)

@cython.locals(
array_len=cython.uint,
buf=cython.bytearray,
written=cython.uint,
token=cython.str,
child_type=SignatureType,
array_len_packed=cython.bytes,
size=cython.uint,
writer=cython.object,
packer=cython.object,
i=cython.uint,
)
cdef unsigned int _write_array(self, object array, object type)
cdef unsigned int _write_array(self, object array, SignatureType type_)

cpdef write_struct(self, object array, object type)
cpdef write_struct(self, object array, SignatureType type_)

@cython.locals(
written=cython.uint,
i=cython.uint,
)
cdef unsigned int _write_struct(self, object array, object type)
cdef unsigned int _write_struct(self, cython.list array, SignatureType type_)

cpdef write_variant(self, object variant, object type)
cpdef write_variant(self, Variant variant, SignatureType type_)

@cython.locals(
written=cython.uint,
signature=cython.str,
signature_bytes=cython.bytes,
)
cdef unsigned int _write_variant(self, object variant, object type)
cdef unsigned int _write_variant(self, Variant variant, SignatureType type_)

@cython.locals(
written=cython.uint,
size=cython.uint,
)
cdef unsigned int _write_single(self, object type_, object body)
cdef unsigned int _write_single(self, SignatureType type_, object body)

@cython.locals(
written=cython.uint,
t=cython.str,
)
cpdef write_dict_entry(self, object type_, object body)
cpdef write_dict_entry(self, cython.list dict_entry, SignatureType type_)

cpdef marshall(self)

Expand All @@ -103,5 +105,6 @@ cdef class Marshaller:
size=cython.uint,
writer=cython.object,
packer=cython.object,
type_=SignatureType,
)
cdef _construct_buffer(self)
Loading