Unverified Commit 60841ef2 authored by Russell Cohen's avatar Russell Cohen Committed by GitHub
Browse files

Rename the 'fluent' feature to `client` and rename module (#285)

* Rename the 'fluent' dynamodb feature to client

* Update examples

* Don't upload a broken SDK
parent bc511ec7
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -153,8 +153,6 @@ jobs:
      run: echo "name=${GITHUB_REF##*/}-$(date +'%Y-%m-%d')" >> $GITHUB_ENV
    - uses: actions/upload-artifact@v2
      name: Upload SDK Artifact
        # Always upload the output even if the tests failed
      if: ${{ always() }}
      with:
        name: aws-sdk-${{ env.name }}-${{ github.sha }}
        path: |
+19 −3
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ import software.amazon.smithy.rust.codegen.rustlang.RustMetadata
import software.amazon.smithy.rust.codegen.rustlang.RustModule
import software.amazon.smithy.rust.codegen.rustlang.RustType
import software.amazon.smithy.rust.codegen.rustlang.RustWriter
import software.amazon.smithy.rust.codegen.rustlang.Writable
import software.amazon.smithy.rust.codegen.rustlang.asType
import software.amazon.smithy.rust.codegen.rustlang.documentShape
import software.amazon.smithy.rust.codegen.rustlang.render
@@ -21,8 +22,11 @@ import software.amazon.smithy.rust.codegen.rustlang.rust
import software.amazon.smithy.rust.codegen.rustlang.rustBlock
import software.amazon.smithy.rust.codegen.rustlang.rustTemplate
import software.amazon.smithy.rust.codegen.rustlang.stripOuter
import software.amazon.smithy.rust.codegen.rustlang.writable
import software.amazon.smithy.rust.codegen.smithy.RustCrate
import software.amazon.smithy.rust.codegen.smithy.customize.RustCodegenDecorator
import software.amazon.smithy.rust.codegen.smithy.generators.LibRsCustomization
import software.amazon.smithy.rust.codegen.smithy.generators.LibRsSection
import software.amazon.smithy.rust.codegen.smithy.generators.ProtocolConfig
import software.amazon.smithy.rust.codegen.smithy.generators.builderSymbol
import software.amazon.smithy.rust.codegen.smithy.generators.errorSymbol
@@ -36,11 +40,23 @@ class FluentClientDecorator : RustCodegenDecorator {
    override val order: Byte = 0

    override fun extras(protocolConfig: ProtocolConfig, rustCrate: RustCrate) {
        val module = RustMetadata(additionalAttributes = listOf(Attribute.Cfg.feature("fluent")), public = true)
        rustCrate.withModule(RustModule("fluent", module)) { writer ->
        val module = RustMetadata(additionalAttributes = listOf(Attribute.Cfg.feature("client")), public = true)
        rustCrate.withModule(RustModule("client", module)) { writer ->
            FluentClientGenerator(protocolConfig).render(writer)
        }
        rustCrate.addFeature(Feature("fluent", true, listOf(protocolConfig.runtimeConfig.awsHyper().name)))
        rustCrate.addFeature(Feature("client", true, listOf(protocolConfig.runtimeConfig.awsHyper().name)))
    }

    override fun libRsCustomizations(
        protocolConfig: ProtocolConfig,
        baseCustomizations: List<LibRsCustomization>
    ): List<LibRsCustomization> {
        return baseCustomizations + object : LibRsCustomization() {
            override fun section(section: LibRsSection) = writable {
                Attribute.Cfg.feature("client").render(this)
                rust("pub use client::Client;")
            }
        }
    }
}

+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
dynamodb = { path = "../../build/aws-sdk/dynamodb", features = ["fluent"] }
dynamodb = { path = "../../build/aws-sdk/dynamodb", features = ["client"] }
tokio = { version = "1", features = ["full"] }

# used only for static endpoint configuration:
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ use dynamodb::model::{

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = dynamodb::fluent::Client::from_env();
    let client = dynamodb::Client::from_env();
    let tables = client.list_tables().send().await?;

    println!("Current DynamoDB tables: {:?}", tables);
+5 −6
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@
use aws_http::AwsErrorRetryPolicy;
use aws_hyper::{SdkError, SdkSuccess};
use dynamodb::error::DescribeTableError;
use dynamodb::fluent::fluent_builders::Query;
use dynamodb::fluent::Client;
use dynamodb::client::fluent_builders::Query;
use dynamodb::input::DescribeTableInput;
use dynamodb::model::{
    AttributeDefinition, AttributeValue, KeySchemaElement, KeyType, ProvisionedThroughput,
@@ -37,7 +36,7 @@ async fn main() {
        .region(Region::new("us-east-1"))
        .build();
    let conn = aws_hyper::conn::Standard::https();
    let client = dynamodb::fluent::Client::from_conf_conn(conf, conn);
    let client = dynamodb::Client::from_conf_conn(conf, conn);
    let raw_client = aws_hyper::Client::https();

    let table_exists = client
@@ -105,9 +104,9 @@ async fn main() {
}

fn create_table(
    client: &Client,
    client: &dynamodb::Client,
    table_name: &str,
) -> dynamodb::fluent::fluent_builders::CreateTable {
) -> dynamodb::client::fluent_builders::CreateTable {
    client
        .create_table()
        .table_name(table_name)
@@ -159,7 +158,7 @@ fn value_to_item(value: Value) -> AttributeValue {
    }
}

fn movies_in_year(client: &Client, table_name: &str, year: u16) -> Query {
fn movies_in_year(client: &dynamodb::Client, table_name: &str, year: u16) -> Query {
    let mut expr_attrib_names = HashMap::new();
    expr_attrib_names.insert("#yr".to_string(), "year".to_string());
    let mut expr_attrib_values = HashMap::new();
Loading