| Crates.io | hemmer-provider-generator-common |
| lib.rs | hemmer-provider-generator-common |
| version | 0.4.2 |
| created_at | 2025-10-29 19:02:58.625751+00 |
| updated_at | 2026-01-19 03:41:24.256497+00 |
| description | Common types and utilities for Hemmer Provider Generator |
| homepage | https://github.com/hemmer-io/hemmer-provider-generator |
| repository | https://github.com/hemmer-io/hemmer-provider-generator |
| max_upload_size | |
| id | 1907201 |
| size | 63,261 |
Shared types and data structures for the Hemmer Provider Generator.
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.
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)This crate is typically used as a dependency by parser and generator crates:
use hemmer_provider_generator_common::{
ServiceDefinition, ResourceDefinition, FieldDefinition, FieldType, Provider
};
// Create a service definition
let service = ServiceDefinition {
provider: Provider::Aws,
name: "s3".to_string(),
sdk_version: "1.0.0".to_string(),
resources: vec![
ResourceDefinition {
name: "Bucket".to_string(),
description: Some("S3 bucket resource".to_string()),
fields: vec![
FieldDefinition {
name: "name".to_string(),
field_type: FieldType::String,
required: true,
description: Some("Bucket name".to_string()),
}
],
outputs: vec![],
operations: Default::default(),
}
],
};
thiserrorserdeFor detailed API documentation, see docs.rs/hemmer-provider-generator-common.
Licensed under the Apache License, Version 2.0. See LICENSE for details.