1#![cfg_attr(windows, feature(windows_process_extensions_raw_attribute))]
5
6pub mod cache;
7mod error;
8pub mod parsing;
9pub mod pty;
10
11use async_stream::try_stream;
12use azure_security_keyvault_secrets::{models::SecretItem, SecretClient};
13pub use error::*;
14use futures::{Stream, StreamExt as _};
15use std::pin::Pin;
16use tracing::Level;
17
18#[tracing::instrument(level = Level::INFO, skip(client), fields(vault = %client.endpoint()))]
19pub fn list_secrets(
20 client: &SecretClient,
21) -> Pin<Box<impl Stream<Item = Result<SecretItem>> + '_>> {
22 Box::pin(try_stream! {
23 let mut pager = client.get_secrets(None)?;
24 while let Some(page) = pager.next().await {
25 let result = page?.into_body().await?;
26 if let Some(secrets) = result.value {
27 for secret in secrets {
28 yield secret;
29 }
30 }
31 }
32 })
33}