Title: Theory / Unimportant / CS / Descriptive / Protobuf / type

Question: How are leap second considered in Timestamp protobuf?
Answer: Smeared
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/timestamp

Typ: Google.Protobuf.WellKnownTypes.Timestamp
Meaning: a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time.
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/timestamp
Language: Protobuf

Typ: Google.Protobuf.WellKnownTypes.Any
Meaning: an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/any
Language: Protobuf

Typ: Google.Protobuf.WellKnownTypes.Api
Meaning: a light-weight descriptor for a protocol buffer service.
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/any
Language: Protobuf

Typ: Google.Protobuf.WellKnownTypes.Duration
Meaning: a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution.
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/duration
Language: Protobuf

Typ: Google.Protobuf.WellKnownTypes.Empty
Meaning: A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs.
Page: https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/empty
Language: Protobuf

Typ: Cardinality
Meaning: Whether a field is optional, required, or repeated.
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: Protobuf

Typ: Kind
Meaning: Basic field types
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: Protobuf

Typ: NullValue
Meaning: a singleton enumeration to represent the null value for the Value type union
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: proto

Typ: SourceContext
Meaning: represents information about the source of a protobuf element, like the file in which it is defined.
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: proto

Typ: Option
Meaning: An option which can be attached to a message, field, enumeration
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: proto

Typ: Struct
Meaning: a structured data value, consisting of fields which map to dynamically typed values
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: Protobuf
Implementation: map<string, Value>

Typ: Syntax
Meaning: The syntax in which a protocol buffer element is defined.
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: Protobuf

Typ: Value
Meaning: a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values
Page: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
Language: Protobuf

Typ: double
Meaning: same as C++'s double
Language: proto

Typ: float
Meaning: same as C++'s float
Language: proto

Typ: uint32/63
Meaning: integral which uses variable-length encoding.
Page: https://developers.google.com/protocol-buffers/docs/proto3
Language: proto

Typ: sint32/63
Meaning: Uses variable-length encoding. Signed int value.
Page: https://developers.google.com/protocol-buffers/docs/proto3
Language: proto
Intuition: These more efficiently encode negative numbers than regular int32s

Typ: fixed32/64
Meaning: Int with always four/eight bytes.
Page: https://developers.google.com/protocol-buffers/docs/proto3
Language: proto
Intuition: More efficient than uint32/64 if values are often greater than 2^28/2^56

Typ: sfixed32/64
Meaning: signed int with always four/eight bytes.
Page: https://developers.google.com/protocol-buffers/docs/proto3
Language: proto

Typ: google.protobuf.Any
Meaning: An element of any type
Page: https://developers.google.com/protocol-buffers/docs/proto3
Language: proto