def build(cls, obj, res=None, ctx=None):
     if res is None:
         res = b''
     if ctx is None:
         ctx = {}
     if cls._struct_fields:
         for name, struct in cls._struct_fields:
             try:
                 if name in obj:
                     res += struct.build(obj[name], ctx=ctx)
                 else:
                     res += struct.build(None, ctx=ctx)
             except:
                 print("Context at time of failure:", ctx)
                 raise
     else:
         res = cls._build(obj, ctx=ctx)
     return res
Example #2
0
 def build(cls, obj, res=None, ctx=None):
     if res is None:
         res = b''
     if ctx is None:
         ctx = {}
     if cls._struct_fields:
         for name, struct in cls._struct_fields:
             try:
                 if name in obj:
                     res += struct.build(obj[name], ctx=ctx)
                 else:
                     res += struct.build(None, ctx=ctx)
             except:
                 print("Context at time of failure:", ctx)
                 raise
     else:
         res = cls._build(obj, ctx=ctx)
     return res