+-spec presence_violations_to_list(presence_violations(K)) ->
+ [presence_error(K)].
+presence_violations_to_list(#hope_kv_list_presence_violations
+{ keys_missing = KeysMissing
+, keys_duplicated = KeysDuplicated
+, keys_unsupported = KeysUnsupported
+}) ->
+ ErrorMissing =
+ case KeysMissing
+ of [] -> []
+ ; [_|_] -> [{keys_missing, KeysMissing}]
+ end,
+ ErrorDups =
+ case KeysDuplicated
+ of [] -> []
+ ; [_|_] -> [{keys_duplicated, KeysDuplicated}]
+ end,
+ ErrorUnsupported =
+ case KeysUnsupported
+ of [] -> []
+ ; [_|_] -> [{keys_unsupported, KeysUnsupported}]
+ end,
+ ErrorDups ++ ErrorMissing ++ ErrorUnsupported.
+