示例#1
0
 class ConstDefaultTest(DataclassMixin):
     const_bytes: bytes = csfield(cs.Const(b"BMP"))
     const_int: int = csfield(cs.Const(5, cs.Int8ub))
     default_int: int = csfield(cs.Default(cs.Int8ub, 28))
     default_lambda: bytes = csfield(
         cs.Default(cs.Bytes(cs.this.const_int),
                    lambda ctx: bytes(ctx.const_int)))
示例#2
0
 class Image(DataclassMixin):
     width: int = csfield(cs.Int8ub)
     height: int = csfield(cs.Int8ub)
     pixels: t.Optional[bytes] = csfield(
         cs.Default(
             cs.Bytes(cs.this.width * cs.this.height),
             lambda ctx: bytes(ctx.width * ctx.height),
         ))
示例#3
0
    class TestContainer(DataclassMixin):
        @dataclasses.dataclass
        class InnerDataclass(DataclassMixin):
            b: int = csfield(cs.Byte)
            c: bytes = csfield(cs.Bytes(cs.this._.length))

        length: int = csfield(cs.Byte)
        a: InnerDataclass = csfield(DataclassStruct(InnerDataclass))
示例#4
0
 class TestContainer(DataclassMixin):
     a: int = csfield(cs.Int16ub, "This is the documentation of a")
     b: int = csfield(
         cs.Int8ub,
         doc="This is the documentation of b\nwhich is multiline")
     c: int = csfield(
         cs.Int8ub,
         """
         This is the documentation of c
         which is also multiline
         """,
     )
示例#5
0
 class Image(DataclassMixin):
     signature: t.Optional[bytes] = csfield(cs.Const(b"BMP"))
     width: int = csfield(cs.Int8ub)
     height: int = csfield(cs.Int8ub)
示例#6
0
 class TestContainer(DataclassMixin):
     a: TestEnum = csfield(cst.TEnum(cs.Int8ub, TestEnum))
     b: int = csfield(cs.Int8ub)
示例#7
0
 class TestContainer(DataclassMixin):
     a: int = csfield(cs.BitsInteger(7))
     b: int = csfield(cs.Bit)
     c: int = csfield(cs.BitsInteger(8))
示例#8
0
 class TestTContainer(DataclassMixin):
     a: t.Optional[int] = csfield(cs.Const(1, cs.Byte))
     b: int = csfield(cs.Int8ub)
示例#9
0
 class TestContainer:
     a: int = csfield(cs.Int16ub)
     b: int = csfield(cs.Int8ub)
示例#10
0
 class InnerDataclass(DataclassMixin):
     b: int = csfield(cs.Byte)
     c: bytes = csfield(cs.Bytes(cs.this._.length))
示例#11
0
 class TestContainer(DataclassMixin):
     _1: int = csfield(cs.Computed(7))
     _2: t.Optional[bytes] = csfield(cs.Const(b"JPEG"))
     _3: None = csfield(cs.Pass)
     _4: None = csfield(cs.Terminated)
示例#12
0
 class TestContainer(DataclassMixin):
     _1: t.Optional[bytes] = csfield(cs.Const(b"\x00"))
     _2: None = csfield(cs.Padding(1))
     _3: None = csfield(cs.Pass)
     _4: None = csfield(cs.Terminated)
示例#13
0
 class TestContainer(DataclassMixin):
     array_field: t.List[int] = csfield(cs.Array(5, cs.Int8ub))
示例#14
0
 class TestContainer(DataclassMixin):
     const_field: t.Optional[bytes] = csfield(cs.Const(b"\x00"))
示例#15
0
 class Image(DataclassMixin):
     width: int = csfield(cs.Int8ub)
     height: int = csfield(cs.Int8ub)
     pixels: bytes = csfield(cs.Bytes(cs.this.height * cs.this.width))
示例#16
0
 class TestContainer(DataclassMixin):
     a: int = csfield(cs.Int16ub)
     b: int = csfield(cs.Int8ub)
示例#17
0
 class TestContainer(DataclassMixin):
     clear: int = csfield(cs.Int8ul)
     copy: int = csfield(cs.Int8ul)
     fromkeys: int = csfield(cs.Int8ul)
     get: int = csfield(cs.Int8ul)
     items: int = csfield(cs.Int8ul)
     keys: int = csfield(cs.Int8ul)
     move_to_end: int = csfield(cs.Int8ul)
     pop: int = csfield(cs.Int8ul)
     popitem: int = csfield(cs.Int8ul)
     search: int = csfield(cs.Int8ul)
     search_all: int = csfield(cs.Int8ul)
     setdefault: int = csfield(cs.Int8ul)
     update: int = csfield(cs.Int8ul)
     values: int = csfield(cs.Int8ul)