azure_security_keyvault 0.18.0

Rust wrapper around Microsoft Azure REST APIs for Azure Key Vault
Documentation
use crate::prelude::*;
use azure_core::{error::Error, headers::Headers, Method, Pageable, Url};

operation! {
    #[stream]
    GetSecretVersions,
    client: SecretClient,
    name: String,
}

impl GetSecretVersionsBuilder {
    pub fn into_stream(self) -> Pageable<KeyVaultGetSecretsResponse, Error> {
        let make_request = move |continuation: Option<String>| {
            let this = self.clone();
            let ctx = self.context.clone();
            async move {
                let mut uri = this.client.keyvault_client.vault_url.clone();
                uri.set_path(&format!("secrets/{}/versions", this.name));

                if let Some(continuation) = continuation {
                    uri = Url::parse(&continuation)?;
                }

                let headers = Headers::new();
                let mut request = KeyvaultClient::finalize_request(uri, Method::Get, headers, None);

                this.client
                    .keyvault_client
                    .send(&ctx, &mut request)
                    .await?
                    .json()
                    .await
            }
        };
        Pageable::new(make_request)
    }
}