feat(types): Add tonic-types crate (#391)
This commit is contained in:
@@ -3,6 +3,7 @@ members = [
|
||||
"tonic",
|
||||
"tonic-build",
|
||||
"tonic-health",
|
||||
"tonic-types",
|
||||
|
||||
# Non-published crates
|
||||
"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
|
||||
implementation.
|
||||
- [`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
|
||||
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
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
[package]
|
||||
name = "tonic-types"
|
||||
version = "0.1.0"
|
||||
authors = ["Lucio Franco <luciofranco14@gmail.com>"]
|
||||
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