azure_data_tables
Microsoft is developing the official Azure SDK for Rust crates and has no plans to update this unofficial crate.
In the future we may release an official version that may have a different package name.
If releasing an official version of this crate is important to you let us know.
Source for this crate can now be found in https://github.com/Azure/azure-sdk-for-rust/tree/legacy.
To monitor for an official, supported version of this crate, see https://aka.ms/azsdk/releases.
This crate is from the Azure SDK for Rust. It supports Azure Table storage.
use azure_core::StatusCode;
use azure_data_tables::{operations::InsertEntityResponse, prelude::*};
use azure_storage::prelude::*;
use futures::stream::StreamExt;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
struct MyEntity {
#[serde(rename = "PartitionKey")]
pub city: String,
pub name: String,
#[serde(rename = "RowKey")]
pub surname: String,
}
#[tokio::main]
async fn main() -> azure_core::Result<()> {
tracing_subscriber::fmt().init();
let account =
std::env::var("STORAGE_ACCOUNT").expect("Set env variable STORAGE_ACCOUNT first!");
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
let table_name = std::env::var("STORAGE_TABLE_NAME").expect("Set env variable STORAGE_TABLE_NAME first!");
let storage_credentials = StorageCredentials::access_key(account.clone(), access_key);
let table_service = TableServiceClient::new(account, storage_credentials);
let table_client = table_service.table_client(table_name);
table_client.create().await?;
let entity = MyEntity {
city: "Milan".to_owned(),
name: "Francesco".to_owned(),
surname: "A".to_owned(),
};
let _: InsertEntityResponse<MyEntity> = table_client.insert(&entity)?.await?;
let entity_client = table_client.partition_key_client(&entity.city).entity_client(&entity.surname);
let response = entity_client.get().await?;
let mut entity: MyEntity = response.entity;
entity.name = "Ryan".to_owned();
entity_client.update(&entity, response.etag.into())?.await?;
entity_client.delete().await?;
table_client.delete().await?;
Ok(())
}
License: MIT