Unverified Commit 0c88da85 authored by Nugine's avatar Nugine
Browse files

codegen: refactor preludes

parent 7694f0ad
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -7,13 +7,17 @@ use crate::ops::Operations;
use crate::rust;

pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) {
    g.ln("use super::*;");
    g.lf();
    g.ln("use aws_sdk_s3::input::*;");
    g.ln("use aws_sdk_s3::output::*;");
    g.ln("use aws_sdk_s3::model::*;");
    g.ln("use aws_sdk_s3::error::*;");
    g.lf();
    g.lines([
        "//! Auto generated by codegen/src/aws_conv.rs",
        "",
        "use super::*;",
        "",
        "use aws_sdk_s3::input::*;",
        "use aws_sdk_s3::output::*;",
        "use aws_sdk_s3::model::*;",
        "use aws_sdk_s3::error::*;",
        "",
    ]);

    for (name, rust_type) in rust_types {
        if name.starts_with("SelectObjectContent") {
+13 −9
Original line number Diff line number Diff line
@@ -7,15 +7,19 @@ use crate::rust;
use heck::ToSnakeCase;

pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) {
    g.ln("use super::*;");
    g.lf();
    g.ln("use crate::conv::{try_from_aws, try_into_aws};");
    g.lf();
    g.ln("use s3s::S3;");
    g.ln("use s3s::S3Result;");
    g.lf();
    g.ln("use tracing::debug;");
    g.lf();
    g.lines([
        "//! Auto generated by codegen/src/aws_proxy.rs",
        "",
        "use super::*;",
        "",
        "use crate::conv::{try_from_aws, try_into_aws};",
        "",
        "use s3s::S3;",
        "use s3s::S3Result;",
        "",
        "use tracing::debug;",
        "",
    ]);

    g.ln("#[async_trait::async_trait]");
    g.ln("impl S3 for Proxy {");
+4 −7
Original line number Diff line number Diff line
@@ -293,8 +293,9 @@ pub fn collect_rust_types(model: &smithy::Model, ops: &Operations) -> RustTypes
}

pub fn codegen(rust_types: &RustTypes, g: &mut Codegen) {
    let prelude = [
        "//! Auto-generated definitions",
    g.lines([
        "//! Auto generated by codegen/src/dto.rs",
        "",
        "#![allow(clippy::empty_structs_with_brackets)]",
        "",
        "use super::*;",
@@ -304,11 +305,7 @@ pub fn codegen(rust_types: &RustTypes, g: &mut Codegen) {
        "use std::fmt;",
        "use std::str::FromStr;",
        "",
    ];

    for line in prelude {
        g.ln(line);
    }
    ]);

    for rust_type in rust_types.values() {
        match rust_type {
+11 −1
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@ struct Error {
    status: Vec<Option<String>>,
}

pub fn codegen(model: &smithy::Model, g: &mut Codegen) {
type Errors = BTreeMap<String, Error>;

fn collect_errors(model: &smithy::Model) -> Errors {
    let error_code_doc = {
        let smithy::Shape::Structure(shape) = &model.shapes["com.amazonaws.s3#Error"] else { panic!() };
        shape.members["Code"].traits.doc().unwrap()
@@ -111,7 +113,15 @@ pub fn codegen(model: &smithy::Model, g: &mut Codegen) {
        err.status.push(status);
    }

    errors
}

pub fn codegen(model: &smithy::Model, g: &mut Codegen) {
    let errors = collect_errors(model);

    g.lines([
        "//! Auto generated by codegen/src/error.rs",
        "",
        "use bytestring::ByteString;", //
        "use hyper::StatusCode;",      //
        "",                            //
+4 −7
Original line number Diff line number Diff line
@@ -29,17 +29,14 @@ pub fn codegen(model: &smithy::Model, g: &mut Codegen) {
        headers.insert("x-amz-decoded-content-length");
    }

    let prelude = [
        "//! Auto generated header name definitions",
    g.lines([
        "//! Auto generated by codegen/src/headers.rs",
        "",
        "#![allow(clippy::declare_interior_mutable_const)]",
        "",
        "use hyper::header::HeaderName;",
        "",
    ];

    for line in prelude {
        g.ln(line);
    }
    ]);

    for header in headers {
        let name = to_constant_name(header);
Loading