@@ -269,6 +269,9 @@ G_BEGIN_DECLS
269269 * #GArrowExtractRegexOptions is a class to customize the `extract_regex`
270270 * function.
271271 *
272+ * #GArrowExtractRegexSpanOptions is a class to customize the `extract_regex_span`
273+ * function.
274+ *
272275 * There are many functions to compute data on an array.
273276 */
274277
@@ -7091,6 +7094,102 @@ garrow_extract_regex_options_new(void)
70917094 return GARROW_EXTRACT_REGEX_OPTIONS (options);
70927095}
70937096
7097+ enum {
7098+ PROP_EXTRACT_REGEX_SPAN_OPTIONS_PATTERN = 1 ,
7099+ };
7100+
7101+ G_DEFINE_TYPE (GArrowExtractRegexSpanOptions,
7102+ garrow_extract_regex_span_options,
7103+ GARROW_TYPE_FUNCTION_OPTIONS)
7104+
7105+ static void
7106+ garrow_extract_regex_span_options_set_property(GObject *object,
7107+ guint prop_id,
7108+ const GValue *value,
7109+ GParamSpec *pspec)
7110+ {
7111+ auto options =
7112+ garrow_extract_regex_span_options_get_raw (GARROW_EXTRACT_REGEX_SPAN_OPTIONS (object));
7113+
7114+ switch (prop_id) {
7115+ case PROP_EXTRACT_REGEX_SPAN_OPTIONS_PATTERN:
7116+ options->pattern = g_value_get_string (value);
7117+ break ;
7118+ default :
7119+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
7120+ break ;
7121+ }
7122+ }
7123+
7124+ static void
7125+ garrow_extract_regex_span_options_get_property (GObject *object,
7126+ guint prop_id,
7127+ GValue *value,
7128+ GParamSpec *pspec)
7129+ {
7130+ auto options =
7131+ garrow_extract_regex_span_options_get_raw (GARROW_EXTRACT_REGEX_SPAN_OPTIONS (object));
7132+
7133+ switch (prop_id) {
7134+ case PROP_EXTRACT_REGEX_SPAN_OPTIONS_PATTERN:
7135+ g_value_set_string (value, options->pattern .c_str ());
7136+ break ;
7137+ default :
7138+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
7139+ break ;
7140+ }
7141+ }
7142+
7143+ static void
7144+ garrow_extract_regex_span_options_init (GArrowExtractRegexSpanOptions *object)
7145+ {
7146+ auto priv = GARROW_FUNCTION_OPTIONS_GET_PRIVATE (object);
7147+ priv->options = static_cast <arrow::compute::FunctionOptions *>(
7148+ new arrow::compute::ExtractRegexSpanOptions ());
7149+ }
7150+
7151+ static void
7152+ garrow_extract_regex_span_options_class_init (GArrowExtractRegexSpanOptionsClass *klass)
7153+ {
7154+ auto gobject_class = G_OBJECT_CLASS (klass);
7155+
7156+ gobject_class->set_property = garrow_extract_regex_span_options_set_property;
7157+ gobject_class->get_property = garrow_extract_regex_span_options_get_property;
7158+
7159+ arrow::compute::ExtractRegexSpanOptions options;
7160+
7161+ GParamSpec *spec;
7162+ /* *
7163+ * GArrowExtractRegexSpanOptions:pattern:
7164+ *
7165+ * Regular expression with named capture fields.
7166+ *
7167+ * Since: 23.0.0
7168+ */
7169+ spec = g_param_spec_string (" pattern" ,
7170+ " Pattern" ,
7171+ " Regular expression with named capture fields" ,
7172+ options.pattern .c_str (),
7173+ static_cast <GParamFlags>(G_PARAM_READWRITE));
7174+ g_object_class_install_property (gobject_class,
7175+ PROP_EXTRACT_REGEX_SPAN_OPTIONS_PATTERN,
7176+ spec);
7177+ }
7178+
7179+ /* *
7180+ * garrow_extract_regex_span_options_new:
7181+ *
7182+ * Returns: A newly created #GArrowExtractRegexSpanOptions.
7183+ *
7184+ * Since: 23.0.0
7185+ */
7186+ GArrowExtractRegexSpanOptions *
7187+ garrow_extract_regex_span_options_new (void )
7188+ {
7189+ auto options = g_object_new (GARROW_TYPE_EXTRACT_REGEX_SPAN_OPTIONS, NULL );
7190+ return GARROW_EXTRACT_REGEX_SPAN_OPTIONS (options);
7191+ }
7192+
70947193G_END_DECLS
70957194
70967195arrow::Result<arrow::FieldRef>
@@ -7254,6 +7353,12 @@ garrow_function_options_new_raw(const arrow::compute::FunctionOptions *arrow_opt
72547353 static_cast <const arrow::compute::ExtractRegexOptions *>(arrow_options);
72557354 auto options = garrow_extract_regex_options_new_raw (arrow_extract_regex_options);
72567355 return GARROW_FUNCTION_OPTIONS (options);
7356+ } else if (arrow_type_name == " ExtractRegexSpanOptions" ) {
7357+ const auto arrow_extract_regex_span_options =
7358+ static_cast <const arrow::compute::ExtractRegexSpanOptions *>(arrow_options);
7359+ auto options =
7360+ garrow_extract_regex_span_options_new_raw (arrow_extract_regex_span_options);
7361+ return GARROW_FUNCTION_OPTIONS (options);
72577362 } else {
72587363 auto options = g_object_new (GARROW_TYPE_FUNCTION_OPTIONS, NULL );
72597364 return GARROW_FUNCTION_OPTIONS (options);
@@ -7893,3 +7998,21 @@ garrow_extract_regex_options_get_raw(GArrowExtractRegexOptions *options)
78937998 return static_cast <arrow::compute::ExtractRegexOptions *>(
78947999 garrow_function_options_get_raw (GARROW_FUNCTION_OPTIONS (options)));
78958000}
8001+
8002+ GArrowExtractRegexSpanOptions *
8003+ garrow_extract_regex_span_options_new_raw (
8004+ const arrow::compute::ExtractRegexSpanOptions *arrow_options)
8005+ {
8006+ return GARROW_EXTRACT_REGEX_SPAN_OPTIONS (
8007+ g_object_new (GARROW_TYPE_EXTRACT_REGEX_SPAN_OPTIONS,
8008+ " pattern" ,
8009+ arrow_options->pattern .c_str (),
8010+ NULL ));
8011+ }
8012+
8013+ arrow::compute::ExtractRegexSpanOptions *
8014+ garrow_extract_regex_span_options_get_raw (GArrowExtractRegexSpanOptions *options)
8015+ {
8016+ return static_cast <arrow::compute::ExtractRegexSpanOptions *>(
8017+ garrow_function_options_get_raw (GARROW_FUNCTION_OPTIONS (options)));
8018+ }
0 commit comments