+ return bt2.field_class._StringFieldClass._create_from_ptr(field_class_ptr)
+
+ def create_static_array_field_class(self, elem_fc, length):
+ utils._check_type(elem_fc, bt2.field_class._FieldClass)
+ utils._check_uint64(length)
+ ptr = native_bt.field_class_static_array_create(self._ptr, elem_fc._ptr, length)
+ self._check_create_status(ptr, 'static array')
+
+ return bt2.field_class._StaticArrayFieldClass._create_from_ptr_and_get_ref(ptr)
+
+ def create_dynamic_array_field_class(self, elem_fc, length_fc=None):
+ utils._check_type(elem_fc, bt2.field_class._FieldClass)
+ ptr = native_bt.field_class_dynamic_array_create(self._ptr, elem_fc._ptr)
+ self._check_create_status(ptr, 'dynamic array')
+ obj = bt2.field_class._DynamicArrayFieldClass._create_from_ptr(ptr)
+
+ if length_fc is not None:
+ obj._length_field_class = length_fc
+
+ return obj
+
+ def create_variant_field_class(self, selector_fc=None):
+ ptr = native_bt.field_class_variant_create(self._ptr)
+ self._check_create_status(ptr, 'variant')
+ obj = bt2.field_class._VariantFieldClass._create_from_ptr(ptr)
+
+ if selector_fc is not None:
+ obj._selector_field_class = selector_fc
+
+ return obj