hemmer-provider-generator-common
Shared types and data structures for the Hemmer Provider Generator.
Overview
This crate provides the core intermediate representation (IR) used across all components of the Hemmer Provider Generator. It defines cloud-agnostic types that represent service definitions, resources, fields, and operations.
Key Types
ServiceDefinition- Complete service specification with resources and operationsResourceDefinition- Individual resource with fields, outputs, and CRUD operationsFieldDefinition- Resource field with name, type, and optionalityFieldType- Universal type system (String, Integer, Float, Boolean, DateTime, List, Map)Provider- Enum representing cloud providers (AWS, GCP, Azure, Kubernetes)Operations- CRUD operation mappings (Create, Read, Update, Delete)
Usage
This crate is typically used as a dependency by parser and generator crates:
use ;
// Create a service definition
let service = ServiceDefinition ;
Features
- Cloud-agnostic intermediate representation
- Comprehensive error types with
thiserror - Serialization support with
serde - Zero dependencies beyond error handling and serialization
Documentation
For detailed API documentation, see docs.rs/hemmer-provider-generator-common.
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.