+/**
+ * Possible options to pass to a set operation.
+ *
+ * Used as tag for struct #GNUNET_SET_Option.
+ */
+enum GNUNET_SET_OptionType
+{
+ /**
+ * List terminator.
+ */
+ GNUNET_SET_OPTION_END=0,
+ /**
+ * Fail set operations when the other peer shows weird behavior
+ * that might by a Byzantine fault.
+ *
+ * For set union, 'v.num' is a lower bound on elements
+ * that the other peer must have in common with us.
+ */
+ GNUNET_SET_OPTION_BYZANTINE=1,
+ /**
+ * Do not use the optimized set operation, but send full sets.
+ * Might trigger Byzantine fault detection.
+ */
+ GNUNET_SET_OPTION_FORCE_FULL=2,
+ /**
+ * Only use optimized set operations, even though for this
+ * particular set operation they might be much slower.
+ * Might trigger Byzantine fault detection.
+ */
+ GNUNET_SET_OPTION_FORCE_DELTA=4,
+};
+
+
+/**
+ * Option for set operations.
+ */
+struct GNUNET_SET_Option
+{
+ /**
+ * Type of the option.
+ */
+ enum GNUNET_SET_OptionType type;
+
+ /**
+ * Value for the option, only used with some options.
+ */
+ union {
+ uint64_t num;
+ } v;
+};
+
+