Commit 370ec377 authored by Nugine's avatar Nugine
Browse files

refactor(codegen): prepare for v2

parent 3ca5170b
Loading
Loading
Loading
Loading
+2 −82
Original line number Diff line number Diff line
@@ -13,88 +13,8 @@
    clippy::let_underscore_untyped,
)]

mod rust;
mod smithy;

mod access;
mod dto;
mod error;
mod headers;
mod ops;
mod s3_trait;
mod xml;

mod aws_conv;
mod aws_proxy;

use codegen_writer::Codegen;

fn o<T: ToOwned + ?Sized>(x: &T) -> T::Owned {
    x.to_owned()
}
mod v1;

fn main() {
    let model: smithy::Model = {
        let json_path = std::env::args().nth(1).unwrap();
        let json_file = std::fs::read(json_path).unwrap();
        serde_json::from_slice(&json_file).unwrap()
    };
    assert_eq!(model.smithy, "2.0");

    let ops = ops::collect_operations(&model);
    let rust_types = dto::collect_rust_types(&model, &ops);

    {
        let path = "crates/s3s/src/dto/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || dto::codegen(&rust_types, &ops));
    }

    {
        let path = "crates/s3s/src/header/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || headers::codegen(&model));
    }

    {
        let path = "crates/s3s/src/error/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || error::codegen(&model));
    }

    {
        let path = "crates/s3s/src/xml/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || xml::codegen(&ops, &rust_types));
    }

    {
        let path = "crates/s3s/src/s3_trait.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || s3_trait::codegen(&ops));
    }

    {
        let path = "crates/s3s/src/ops/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || ops::codegen(&ops, &rust_types));
    }

    {
        let path = "crates/s3s/src/access/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || access::codegen(&ops));
    }

    {
        let path = "crates/s3s-aws/src/conv/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || aws_conv::codegen(&ops, &rust_types));
    }

    {
        let path = "crates/s3s-aws/src/proxy/generated.rs";
        let gen = Codegen::create_file(path).unwrap();
        codegen_writer::scoped(gen, || aws_proxy::codegen(&ops, &rust_types));
    }
    v1::run();
}
+1 −1
Original line number Diff line number Diff line
use crate::ops::Operations;
use super::ops::Operations;

use codegen_writer::g;
use codegen_writer::glines;
+4 −4
Original line number Diff line number Diff line
use crate::dto::RustTypes;
use crate::ops::is_op_input;
use crate::ops::Operations;
use crate::rust;
use super::dto::RustTypes;
use super::ops::is_op_input;
use super::ops::Operations;
use super::rust;

use std::format as f;
use std::ops::Not;
+3 −3
Original line number Diff line number Diff line
use crate::dto::RustTypes;
use crate::ops::Operations;
use crate::rust;
use super::dto::RustTypes;
use super::ops::Operations;
use super::rust;

use std::format as f;

+4 −4
Original line number Diff line number Diff line
use crate::o;
use crate::ops::{is_op_input, Operations, SKIPPED_OPS};
use crate::rust::codegen_doc;
use crate::{rust, smithy};
use super::o;
use super::ops::{is_op_input, Operations, SKIPPED_OPS};
use super::rust::codegen_doc;
use super::{rust, smithy};

use std::borrow::Cow;
use std::collections::BTreeMap;
Loading