return strv;
}
-/* Type checking and querying {{{1 */
+/* Type checking, querying, default value {{{1 */
/**
* g_variant_get_type:
* @value: a #GVariant
return g_variant_type_is_container (g_variant_get_type (value));
}
-
/**
* g_variant_classify:
* @value: a #GVariant
return *g_variant_get_type_string (value);
}
+/**
+ * g_variant_default_value:
+ * @type: a definite #GVariantType
+ * @returns: a reference to a #GVariant of the requested type
+ *
+ * Returns the "default value" for @type. The default boolean instance
+ * is false, the default value for any numeric type is (positive) zero,
+ * the default array is empty and the default maybe instance is Nothing.
+ * The default value for a tuple type is the tuple containing the
+ * default value for each child. This is roughly equivalent to the
+ * values produced by the serialiser when it detects invalid data.
+ *
+ * Since: 2.26
+ **/
+GVariant *
+g_variant_default_value (const GVariantType *type)
+{
+ GVariant *broken, *fixed;
+
+ g_return_val_if_fail (g_variant_type_is_definite (type), NULL);
+
+ /* let the serialiser figure it out */
+ broken = g_variant_new_from_data (type, NULL, 0, FALSE, NULL, NULL);
+ fixed = g_variant_get_normal_form (broken);
+ g_variant_unref (broken);
+
+ return fixed;
+}
+
/* Pretty printer {{{1 */
/**
* g_variant_print_string:
const GVariantType *type);
gboolean g_variant_is_container (GVariant *value);
GVariantClass g_variant_classify (GVariant *value);
+GVariant * g_variant_default_value (const GVariantType *type);
GVariant * g_variant_new_boolean (gboolean boolean);
GVariant * g_variant_new_byte (guchar byte);
GVariant * g_variant_new_int16 (gint16 int16);