feat(types): Add tonic-types crate (#391)
This commit is contained in:
@@ -3,6 +3,7 @@ members = [
|
|||||||
"tonic",
|
"tonic",
|
||||||
"tonic-build",
|
"tonic-build",
|
||||||
"tonic-health",
|
"tonic-health",
|
||||||
|
"tonic-types",
|
||||||
|
|
||||||
# Non-published crates
|
# Non-published crates
|
||||||
"examples",
|
"examples",
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ question. If that doesn't work, try opening an [issue] with the question.
|
|||||||
- [`tonic`](https://github.com/hyperium/tonic/tree/master/tonic): Generic gRPC and HTTP/2 client/server
|
- [`tonic`](https://github.com/hyperium/tonic/tree/master/tonic): Generic gRPC and HTTP/2 client/server
|
||||||
implementation.
|
implementation.
|
||||||
- [`tonic-build`](https://github.com/hyperium/tonic/tree/master/tonic-build): [`prost`] based service codegen.
|
- [`tonic-build`](https://github.com/hyperium/tonic/tree/master/tonic-build): [`prost`] based service codegen.
|
||||||
|
- [`tonic-types`](https://github.com/hyperium/tonic/tree/master/tonic-types): [`prost`] based grpc utility types.
|
||||||
- [`tonic-health`](https://github.com/hyperium/tonic/tree/master/tonic-health): Implementation of the standard [gRPC
|
- [`tonic-health`](https://github.com/hyperium/tonic/tree/master/tonic-health): Implementation of the standard [gRPC
|
||||||
health checking service][healthcheck]. Also serves as an example of both unary and response streaming.
|
health checking service][healthcheck]. Also serves as an example of both unary and response streaming.
|
||||||
- [`examples`](https://github.com/hyperium/tonic/tree/master/examples): Example gRPC implementations showing off
|
- [`examples`](https://github.com/hyperium/tonic/tree/master/examples): Example gRPC implementations showing off
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[package]
|
||||||
|
name = "tonic-types"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Lucio Franco <[email protected]>"]
|
||||||
|
edition = "2018"
|
||||||
|
license = "MIT"
|
||||||
|
documentation = "https://docs.rs/tonic-types/0.1.0/tonic-types/"
|
||||||
|
repository = "https://github.com/hyperium/tonic"
|
||||||
|
homepage = "https://github.com/hyperium/tonic"
|
||||||
|
description = """
|
||||||
|
A collection of useful protobuf types that can be used with `tonic`.
|
||||||
|
"""
|
||||||
|
readme = "../README.md"
|
||||||
|
categories = ["web-programming", "network-programming", "asynchronous"]
|
||||||
|
keywords = ["rpc", "grpc", "protobuf"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
prost = "0.6"
|
||||||
|
prost-types = "0.6"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
prost-build = "0.6"
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fn main() {
|
||||||
|
prost_build::compile_protos(&["proto/status.proto"], &["proto/"]).unwrap();
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
// Copyright 2020 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package google.rpc;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option cc_enable_arenas = true;
|
||||||
|
option go_package = "google.golang.org/genproto/googleapis/rpc/status;status";
|
||||||
|
option java_multiple_files = true;
|
||||||
|
option java_outer_classname = "StatusProto";
|
||||||
|
option java_package = "com.google.rpc";
|
||||||
|
option objc_class_prefix = "RPC";
|
||||||
|
|
||||||
|
// The `Status` type defines a logical error model that is suitable for
|
||||||
|
// different programming environments, including REST APIs and RPC APIs. It is
|
||||||
|
// used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
||||||
|
// three pieces of data: error code, error message, and error details.
|
||||||
|
//
|
||||||
|
// You can find out more about this error model and how to work with it in the
|
||||||
|
// [API Design Guide](https://cloud.google.com/apis/design/errors).
|
||||||
|
message Status {
|
||||||
|
// The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
|
||||||
|
int32 code = 1;
|
||||||
|
|
||||||
|
// A developer-facing error message, which should be in English. Any
|
||||||
|
// user-facing error message should be localized and sent in the
|
||||||
|
// [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
|
||||||
|
string message = 2;
|
||||||
|
|
||||||
|
// A list of messages that carry the error details. There is a common set of
|
||||||
|
// message types for APIs to use.
|
||||||
|
repeated google.protobuf.Any details = 3;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
//! A collection of useful protobuf types that can be used with `tonic`.
|
||||||
|
|
||||||
|
#![warn(
|
||||||
|
missing_debug_implementations,
|
||||||
|
missing_docs,
|
||||||
|
rust_2018_idioms,
|
||||||
|
unreachable_pub
|
||||||
|
)]
|
||||||
|
#![doc(
|
||||||
|
html_logo_url = "https://github.com/hyperium/tonic/raw/master/.github/assets/tonic-docs.png"
|
||||||
|
)]
|
||||||
|
#![doc(html_root_url = "https://docs.rs/tonic-types/0.1.0")]
|
||||||
|
#![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")]
|
||||||
|
|
||||||
|
mod pb {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/google.rpc.rs"));
|
||||||
|
}
|
||||||
|
|
||||||
|
pub use pb::Status;
|
||||||
Reference in New Issue
Block a user