def attributes(cls): ''' 표 12 바이너리 데이터 ''' yield cls.Flags, 'flags' yield (SelectiveType(ref_member_flag('flags', 'storage'), {cls.StorageType.LINK: BinDataLink, cls.StorageType.EMBEDDING: BinDataEmbedding, cls.StorageType.STORAGE: BinDataStorage}), 'bindata')
def attributes(cls): yield cls.Flags, 'flags' yield HWPUNIT16, 'spacing' def not_same_widths(context, values): ''' flags.same_widths == 0 ''' return not values['flags'].same_widths def n_entries(member_ref): def n_entries(context, values): n_columns = member_ref(context, values) return n_columns - 1 return n_entries yield dict(name='column0', type=Column0, condition=not_same_widths) yield dict(name='columns', type=X_ARRAY(Column, n_entries(ref_member_flag('flags', 'count'))), condition=not_same_widths) yield UINT16, 'attr2' yield Border, 'splitter'
def attributes(cls): yield cls.Flags, 'flags' yield HWPUNIT16, 'spacing' def not_same_widths(context, values): ''' flags.same_widths == 0 ''' return not values['flags'].same_widths def n_entries(member_ref): def n_entries(context, values): n_columns = member_ref(context, values) return n_columns - 1 return n_entries yield dict(name='column0', type=Column0, condition=not_same_widths) yield dict(name='columns', type=X_ARRAY(Column, n_entries(ref_member_flag('flags', 'count'))), condition=not_same_widths) yield UINT16, 'attr2' yield Border, 'splitter'