diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2022-03-02 11:03:46 +0100 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2022-03-02 11:06:29 +0100 |
commit | 6c65539d04e62de574d3e7f491bca9b5f9f28d6b (patch) | |
tree | 3a5012e845600e61d9e0e07ddda34913963d42a7 | |
parent | 899bca4923fd4a02c7ff876cad131610adec6682 (diff) |
openpgp: Disable doctest if padding is not available.
-rw-r--r-- | openpgp/src/types/compression_level.rs | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/openpgp/src/types/compression_level.rs b/openpgp/src/types/compression_level.rs index 69b5592f..757e8939 100644 --- a/openpgp/src/types/compression_level.rs +++ b/openpgp/src/types/compression_level.rs @@ -13,41 +13,44 @@ use crate::{ /// `1` means fastest compression, `6` being a good default, and /// meaning `9` best compression. /// -/// Note that compression is [dangerous when used naively]. To mitigate some of -/// these issues messages should [use padding]. +/// Note that compression is [dangerous when used naively]. /// /// [dangerous when used naively]: https://mailarchive.ietf.org/arch/msg/openpgp/2FQUVt6Dw8XAsaMELyo5BNlh2pM -/// [use padding]: crate::serialize::stream::padding -/// -/// # Examples -/// -/// Write a message using the given [CompressionAlgorithm]: -/// -/// [CompressionAlgorithm]: super::CompressionAlgorithm -/// -/// ``` -/// use sequoia_openpgp as openpgp; -/// # fn main() -> openpgp::Result<()> { -/// use std::io::Write; -/// use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; -/// use openpgp::serialize::stream::padding::Padder; -/// use openpgp::types::{CompressionAlgorithm, CompressionLevel}; -/// -/// let mut sink = Vec::new(); -/// let message = Message::new(&mut sink); -/// let message = Compressor::new(message) -/// .algo(CompressionAlgorithm::Zlib) -/// # .algo(CompressionAlgorithm::Uncompressed) -/// .level(CompressionLevel::fastest()) -/// .build()?; -/// -/// let message = Padder::new(message).build()?; -/// -/// let mut message = LiteralWriter::new(message).build()?; -/// message.write_all(b"Hello world.")?; -/// message.finalize()?; -/// # Ok(()) } -/// ``` +#[cfg_attr(feature = "compression-deflate", doc = r##" +To mitigate some of these issues messages should [use padding]. + +[use padding]: crate::serialize::stream::padding + +# Examples + +Write a message using the given [CompressionAlgorithm]: + +[CompressionAlgorithm]: super::CompressionAlgorithm + +``` +use sequoia_openpgp as openpgp; +# fn main() -> openpgp::Result<()> { +use std::io::Write; +use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; +use openpgp::serialize::stream::padding::Padder; +use openpgp::types::{CompressionAlgorithm, CompressionLevel}; + +let mut sink = Vec::new(); +let message = Message::new(&mut sink); +let message = Compressor::new(message) + .algo(CompressionAlgorithm::Zlib) +# .algo(CompressionAlgorithm::Uncompressed) + .level(CompressionLevel::fastest()) + .build()?; + +let message = Padder::new(message).build()?; + +let mut message = LiteralWriter::new(message).build()?; +message.write_all(b"Hello world.")?; +message.finalize()?; +# Ok(()) } +``` +"##)] #[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct CompressionLevel(u8); assert_send_and_sync!(CompressionLevel); |