Skip to content

Commit

Permalink
feat: improve marshaller performance (#264)
Browse files Browse the repository at this point in the history
  • Loading branch information
bdraco authored Nov 7, 2023
1 parent 4b7eeb1 commit 5bdb161
Showing 1 changed file with 14 additions and 11 deletions.
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)

0 comments on commit 5bdb161

Please sign in to comment.