prost/
lib.rs

1#![doc(html_root_url = "https://docs.rs/prost/0.13.5")]
2#![cfg_attr(not(feature = "std"), no_std)]
3#![doc = include_str!("../README.md")]
4
5// Re-export the alloc crate for use within derived code.
6#[doc(hidden)]
7pub extern crate alloc;
8
9// Re-export the bytes crate for use within derived code.
10pub use bytes;
11
12mod error;
13mod message;
14mod name;
15mod types;
16
17#[doc(hidden)]
18pub mod encoding;
19
20pub use crate::encoding::length_delimiter::{
21    decode_length_delimiter, encode_length_delimiter, length_delimiter_len,
22};
23pub use crate::error::{DecodeError, EncodeError, UnknownEnumValue};
24pub use crate::message::Message;
25pub use crate::name::Name;
26
27// See `encoding::DecodeContext` for more info.
28// 100 is the default recursion limit in the C++ implementation.
29#[cfg(not(feature = "no-recursion-limit"))]
30const RECURSION_LIMIT: u32 = 100;
31
32// Re-export #[derive(Message, Enumeration, Oneof)].
33// Based on serde's equivalent re-export [1], but enabled by default.
34//
35// [1]: https://github.com/serde-rs/serde/blob/v1.0.89/serde/src/lib.rs#L245-L256
36#[cfg(feature = "derive")]
37#[allow(unused_imports)]
38#[macro_use]
39extern crate prost_derive;
40#[cfg(feature = "derive")]
41#[doc(hidden)]
42pub use prost_derive::*;