def iface_dtype(obj):
 dynamic_go_type = iface_commontype(obj)
 if (dynamic_go_type is None):
  return
 dtype_name = dynamic_go_type['string'].dereference()['str'].string()
 dynamic_gdb_type = lookup_type(dtype_name)
 if (dynamic_gdb_type is None):
  return
 type_size = int(dynamic_go_type['size'])
 uintptr_size = int(dynamic_go_type['size'].type.sizeof)
 if (type_size > uintptr_size):
  dynamic_gdb_type = dynamic_gdb_type.pointer()
 return dynamic_gdb_type

def iface_dtype ( obj ) : dynamic_go_type = iface_commontype ( obj ) if ( dynamic_go_type is None ) : return dtype_name = dynamic_go_type [ 'string' ] . dereference ( ) [ 'str' ] . string ( ) dynamic_gdb_type = lookup_type ( dtype_name ) if ( dynamic_gdb_type is None ) : return type_size = int ( dynamic_go_type [ 'size' ] ) uintptr_size = int ( dynamic_go_type [ 'size' ] . type . sizeof ) if ( type_size > uintptr_size ) : dynamic_gdb_type = dynamic_gdb_type . pointer ( ) return dynamic_gdb_type
decode type of the data field of an eface or iface struct .