]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/rs/src/lib.rs
1 // Licensed to the Apache Software Foundation (ASF) under one
2 // or more contributor license agreements. See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership. The ASF licenses this file
5 // to you under the Apache License, Version 2.0 (the
6 // "License"); you may not use this file except in compliance
7 // with the License. You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing,
12 // software distributed under the License is distributed on an
13 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 // KIND, either express or implied. See the License for the
15 // specific language governing permissions and limitations
18 //! Rust runtime library for the Apache Thrift RPC system.
20 //! This crate implements the components required to build a working
21 //! Thrift server and client. It is divided into the following modules:
29 //! The modules are layered as shown in the diagram below. The `autogen'd`
30 //! layer is generated by the Thrift compiler's Rust plugin. It uses the
31 //! types and functions defined in this crate to serialize and deserialize
32 //! messages and implement RPC. Users interact with these types and services
33 //! by writing their own code that uses the auto-generated clients and
40 //! | autogen'd | (uses errors, autogen)
48 #![crate_type = "lib"]
49 #![doc(test(attr(allow(unused_variables), deny(warnings))))]
50 #![deny(bare_trait_objects)]
52 extern crate byteorder
;
53 extern crate ordered_float
;
54 extern crate integer_encoding
;
55 extern crate threadpool
;
60 // NOTE: this macro has to be defined before any modules. See:
61 // https://danielkeep.github.io/quick-intro-to-macros.html#some-more-gotchas
63 /// Assert that an expression returning a `Result` is a success. If it is,
64 /// return the value contained in the result, i.e. `expr.unwrap()`.
66 macro_rules
! assert_success
{
84 /// Result type returned by all runtime library functions.
86 /// As is convention this is a typedef of `std::result::Result`
87 /// with `E` defined as the `thrift::Error` type.
88 pub type Result
<T
> = std
::result
::Result
<T
, self::Error
>;
90 // Re-export ordered-float, since it is used by the generator
91 pub use ordered_float
::OrderedFloat
as OrderedFloat
;