Skip to main content

FromClient

Derive Macro FromClient 

Source
#[derive(FromClient)]
Expand description

Derive macro for implementing the FromClient trait on client structs.

This macro generates an implementation of the FromClient trait that extracts all struct fields from a Client using the FromClientPart trait.

§Example

use bitwarden_core::client::FromClient;
use bitwarden_core_macro::FromClient;

#[derive(FromClient)]
pub struct FoldersClient {
    key_store: KeyStore<KeyIds>,
    api_configurations: Arc<ApiConfigurations>,
    repository: Arc<dyn Repository<Folder>>,
}

The macro generates:

impl FromClient for FoldersClient {
    fn from_client(client: &Client) -> Self {
        Self {
            key_store: FromClientPart::<KeyStore<KeyIds>>::get_part(client),
            api_configs: FromClientPart::<Arc<ApiConfigurations>>::get_part(client),
            repository: FromClientPart::<Option<Arc<dyn Repository<Folder>>>>::get_part(client),
        }
    }
}