Coverage Report

Created: 2026-03-31 06:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/ambient-authority-0.0.2/src/lib.rs
Line
Count
Source
1
//! Ambient Authority
2
//!
3
//! Capability-oriented library APIs should re-export the [`ambient_authority`]
4
//! function and [`AmbientAuthority`] type in their own API, and include this
5
//! type as an argument to any function which utilizes ambient authority.
6
//!
7
//! For example:
8
//!
9
//! ```rust
10
//! // Re-export the `AmbientAuthority` type.
11
//! pub use ambient_authority::{ambient_authority, AmbientAuthority};
12
//!
13
//! // Declare functions that use ambient authority with an `AmbientAuthority`
14
//! // argument.
15
//! pub fn do_a_thing(_: AmbientAuthority) {
16
//!     println!("hello world");
17
//! }
18
//! ```
19
//!
20
//! To use an API that uses [`AmbientAuthority`], call [`ambient_authority`]
21
//! and pass the result:
22
//!
23
//! ```rust,ignore
24
//! use ambient_authority::ambient_authority;
25
//!
26
//! do_a_thing(ambient_authority());
27
//! ```
28
29
#![deny(missing_docs)]
30
#![deny(clippy::disallowed_method)]
31
#![forbid(unsafe_code)]
32
#![no_std]
33
34
/// Instances of this `AmbientAuthority` type serve to indicate that the
35
/// [`ambient_authority`] function has been called, indicating that the user
36
/// has explicitly opted into using ambient authority.
37
#[derive(Copy, Clone)]
38
pub struct AmbientAuthority(());
39
40
/// Return an `AmbientAuthority` value, which allows use of functions that
41
/// include an `AmbientAuthority` argument.
42
#[inline]
43
#[must_use]
44
#[allow(clippy::missing_const_for_fn)]
45
2.27k
pub fn ambient_authority() -> AmbientAuthority {
46
2.27k
    AmbientAuthority(())
47
2.27k
}
48
49
/// Internal implementation detail for macros.
50
///
51
/// For users concerned about resource names such as file names or network
52
/// addresses being influenced by untrusted code, file names in static string
53
/// literals and network addresses in integer literals are ok. This function
54
/// is similar to `ambient_authority` but is meant to be used in macros that
55
/// verify that the resource identifiers are known at compile time. Users of
56
/// the `disallowed_method` clippy lint can opt to allow or disallow this
57
/// function separately from the general `ambient_authority` function.
58
#[inline]
59
#[must_use]
60
#[doc(hidden)]
61
pub const fn ambient_authority_known_at_compile_time() -> AmbientAuthority {
62
    AmbientAuthority(())
63
}