successor
foo
bar
foo@1000000,0
foo@1000000.000051212,0
foo@1000000,8
foo@1000000.000051212,7
foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a
----
Successor(foo [666f6f00]) = g [6700]
Successor(bar [62617200]) = c [6300]
Successor(foo@1000000,0 [666f6f0000038d7ea4c6800009]) = g [6700]
Successor(foo@1000000.000051212,0 [666f6f0000038d7ea4c7480c09]) = g [6700]
Successor(foo@1000000,8 [666f6f0000038d7ea4c68000000000080d]) = g [6700]
Successor(foo@1000000.000051212,7 [666f6f0000038d7ea4c7480c000000070d]) = g [6700]
Successor(foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a [666f6f0001cf379e85637142e6acc8ed5259fa177a12]) = g [6700]

# The successor for an empty string should be a key consisting only of the 0x00
# byte.
successor
hex:
----
Successor(<empty> []) =  [00]

separator
bar foo
foo@1000000,0 foo@1000000,0
foo@1000000,1 foo@1000000,0
foo@01,a65a118c-5dcb-452b-bd82-7dd17e121138 foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a
fax@01,a65a118c-5dcb-452b-bd82-7dd17e121138 foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a
----
Separator(bar [62617200], foo [666f6f00]) = c [6300]
Separator(foo@1000000,0 [666f6f0000038d7ea4c6800009], foo@1000000,0 [666f6f0000038d7ea4c6800009]) = foo@1000000,0 [666f6f0000038d7ea4c6800009]
Separator(foo@1000000,1 [666f6f0000038d7ea4c68000000000010d], foo@1000000,0 [666f6f0000038d7ea4c6800009]) = foo@1000000,1 [666f6f0000038d7ea4c68000000000010d]
Separator(foo@01,a65a118c-5dcb-452b-bd82-7dd17e121138 [666f6f0001a65a118c5dcb452bbd827dd17e12113812], foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a [666f6f0001cf379e85637142e6acc8ed5259fa177a12]) = foo@01,a65a118c-5dcb-452b-bd82-7dd17e121138 [666f6f0001a65a118c5dcb452bbd827dd17e12113812]
Separator(fax@01,a65a118c-5dcb-452b-bd82-7dd17e121138 [6661780001a65a118c5dcb452bbd827dd17e12113812], foo@01,cf379e85-6371-42e6-acc8-ed5259fa177a [666f6f0001cf379e85637142e6acc8ed5259fa177a12]) = fb [666200]

separator
@1,0 a@2,0
----
Separator(@1,0 [00000000003b9aca0009], a@2,0 [6100000000007735940009]) = @1,0 [00000000003b9aca0009]
