design/caps: fix and clarify subset operations with empty fields

https://bugzilla.gnome.org/show_bug.cgi?id=775786
This commit is contained in:
Matthew Waters 2016-12-08 20:22:53 +11:00
parent 40317e7bf3
commit a3fe9f6a7d

View file

@ -41,9 +41,13 @@ One caps "A" is a subset of another caps "B" if for each structure in
in "A".
A structure "a" is the subset of a structure "b" if it has the same
structure name, the same caps features and each field in "b" exists in
"a" and the value of the field in "a" is a subset of the value of the
field in "b". "a" can have additional fields that are not in "b".
structure name, the same caps features and each field in "b" either does not
exist in "a", or the value of the field in "a" is a subset of the value of the
field in "b". "a" must not have additional fields that are not in "b". Fields
that are in "b" but not in "a" (aka, an empty field) are always a subset.
This is different to the intuitive mathematical definition as an empty field
is defined to contain all possible values. This means that the empty field is
always a superset of any other field.
EMPTY caps are a subset of every other caps. Every caps are a subset of
ANY caps.