Skip to content

Commit

Permalink
rpc: documentation pass on proto files (#21045)
Browse files Browse the repository at this point in the history
  • Loading branch information
bmwill authored Feb 4, 2025
1 parent 9135974 commit 93f0205
Show file tree
Hide file tree
Showing 13 changed files with 3,772 additions and 1,785 deletions.
1,194 changes: 597 additions & 597 deletions crates/sui-rpc-api/proto/documentation.json

Large diffs are not rendered by default.

1,501 changes: 847 additions & 654 deletions crates/sui-rpc-api/proto/documentation.md

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions crates/sui-rpc-api/proto/google/protobuf/empty.proto
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ option cc_enable_arenas = true;
// empty messages in your APIs. A typical example is to use it as the request
// or the response type of an API method. For instance:
//
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
// ```
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
// ```
//
message Empty {}
84 changes: 47 additions & 37 deletions crates/sui-rpc-api/proto/google/protobuf/timestamp.proto
Original file line number Diff line number Diff line change
Expand Up @@ -47,72 +47,82 @@ option objc_class_prefix = "GPB";
// backwards to year one. It is encoded assuming all minutes are 60
// seconds long, i.e. leap seconds are "smeared" so that no leap second
// table is needed for interpretation. Range is from
// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
// By restricting to that range, we ensure that we can convert to
// and from RFC 3339 date strings.
// `0001-01-01T00:00:00Z` to `9999-12-31T23:59:59.999999999Z`.
// Restricting to that range ensures that conversion to
// and from RFC 3339 date strings is possible.
// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
//
// # Examples
//
// Example 1: Compute Timestamp from POSIX `time()`.
//
// Timestamp timestamp;
// timestamp.set_seconds(time(NULL));
// timestamp.set_nanos(0);
// ```
// Timestamp timestamp;
// timestamp.set_seconds(time(NULL));
// timestamp.set_nanos(0);
// ```
//
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
//
// struct timeval tv;
// gettimeofday(&tv, NULL);
// ```
// struct timeval tv;
// gettimeofday(&tv, NULL);
//
// Timestamp timestamp;
// timestamp.set_seconds(tv.tv_sec);
// timestamp.set_nanos(tv.tv_usec * 1000);
// Timestamp timestamp;
// timestamp.set_seconds(tv.tv_sec);
// timestamp.set_nanos(tv.tv_usec * 1000);
// ```
//
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
//
// FILETIME ft;
// GetSystemTimeAsFileTime(&ft);
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
// ```
// FILETIME ft;
// GetSystemTimeAsFileTime(&ft);
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
//
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
// Timestamp timestamp;
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
// Timestamp timestamp;
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); //
// ```
//
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
//
// long millis = System.currentTimeMillis();
// ```
// long millis = System.currentTimeMillis();
//
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
// .setNanos((int) ((millis % 1000) * 1000000)).build();
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
// .setNanos((int) ((millis % 1000) * 1000000)).build();
//
// ```
//
// Example 5: Compute Timestamp from current time in Python.
//
// timestamp = Timestamp()
// timestamp.GetCurrentTime()
// ```
// timestamp = Timestamp()
// timestamp.GetCurrentTime()
// ```
//
// # JSON Mapping
//
// In JSON format, the Timestamp type is encoded as a string in the
// In JSON format, the `Timestamp` type is encoded as a string in the
// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
// where {year} is always expressed using four digits while {month}, {day},
// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
// format is `{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z`
// where `{year}` is always expressed using four digits while `{month}`, `{day}`,
// `{hour}`, `{min}`, and `{sec}` are zero-padded to two digits each. The fractional
// seconds, which can go up to 9 digits (so up to 1 nanosecond resolution),
// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
// is required, though only UTC (as indicated by "Z") is presently supported.
//
// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
// For example, `2017-01-15T01:30:15.01Z` encodes 15.01 seconds past
// 01:30 UTC on January 15, 2017.
//
// In JavaScript, one can convert a Date object to this format using the
// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
// method. In Python, a standard `datetime.datetime` object can be converted
// In JavaScript, you can convert a `Date` object to this format using the
// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
// method. In Python, you can convert a standard `datetime.datetime` object
// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
// with the time format spec `%Y-%m-%dT%H:%M:%S.%fZ`. Likewise, in Java, you
// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--)
// to obtain a formatter capable of generating timestamps in this format.
Expand All @@ -121,12 +131,12 @@ option objc_class_prefix = "GPB";
message Timestamp {

// Represents seconds of UTC time since Unix epoch
// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
// 9999-12-31T23:59:59Z inclusive.
// `1970-01-01T00:00:00Z`. Must be from `0001-01-01T00:00:00Z` to
// `9999-12-31T23:59:59Z` inclusive.
int64 seconds = 1;

// Non-negative fractions of a second at nanosecond resolution. Negative
// second values with fractions must still have non-negative nanos values
// second values with fractions must still have non-negative nano values
// that count forward in time. Must be from 0 to 999,999,999
// inclusive.
int32 nanos = 2;
Expand Down
Loading

0 comments on commit 93f0205

Please sign in to comment.