If a value is passed to Encode and the type is not a struct (or pointer to struct,
etc.), for simplicity of processing it is represented as a struct of one field.
The only visible effect of this is to encode a zero byte after the value, just as
after the last field of an encoded struct.
A single non-struct value at top level is transmitted like a field with delta tag 0. For instance, a signed integer with value 3 presented as the argument to Encode will emit:
03 04 00 06
Which represents:
03 // this value is 3 bytes long 04 // the type number, 2, represents an integer 00 // tag delta 0 06 // value 3