clarify the charsets of our lexicographic orderings

This commit is contained in:
Matthew Hodgson 2021-04-29 20:49:35 +01:00
parent 00912f9c1e
commit f07e82e34b

View file

@ -115,10 +115,11 @@ relationship can be expressed in one of two ways:
The `order` key is a string which is used to provide a default ordering of The `order` key is a string which is used to provide a default ordering of
siblings in the room list. (Rooms are sorted based on a lexicographic siblings in the room list. (Rooms are sorted based on a lexicographic
ordering of the characters in `order` values; rooms with no `order` ordering of the Unicode codepoints of the characters in `order` values;
come last. `order`s which are not strings, or do not consist solely of rooms with no `order` come last. `order`s which are not strings, or do not
ascii characters in the range `\x20` (space) to `\x7F` (`~`), or consist of consist solely of ascii characters in the range `\x20` (space) to `\x7F`
more than 50 characters, are forbidden and should be ignored if received.) (`~`), or consist of more than 50 characters, are forbidden and should be
ignored if received.)
2. Separately, rooms can claim parents via the `m.space.parent` state 2. Separately, rooms can claim parents via the `m.space.parent` state
event. event.
@ -189,8 +190,9 @@ when a client spots a loop in parent->child or child->parent relationships, it
MUST ignore the cycle by cutting it such that the oldest space-room is the MUST ignore the cycle by cutting it such that the oldest space-room is the
root (i.e. oldest parent). 'Oldest' means the room whose `m.room.create` root (i.e. oldest parent). 'Oldest' means the room whose `m.room.create`
event has the numerically smallest `origin_server_ts`. If the oldest rooms event has the numerically smallest `origin_server_ts`. If the oldest rooms
are precisely the same age, we select the root as the room with the are precisely the same age, we select the root as the room with the smallest
lexicographically smallest `room_id`. `room_id` (lexicographically comparing the Unicode code-points of the
`room_id` string).
### Suggested children ### Suggested children