@derive(Debug, Serialize, Deserialize)
struct ArtifactHir {
string lang;
::xidl_parser::hir::Specification hir;
::xidl_parser::hir::ParserProperties props;
};
@derive(Debug, Serialize, Deserialize)
struct ArtifactHttpHir {
string lang;
::xidl_parser::hir::Specification hir;
::xidlc::generate::http_hir::HttpHirDocument http_hir;
::xidl_parser::hir::ParserProperties props;
};
@derive(Debug, Serialize, Deserialize)
struct ArtifactFile {
string path;
string content;
};
@derive(Debug, Serialize, Deserialize)
enum ArtifactKind {
Hir,
HttpHir,
File
};
@derive(Serialize, Deserialize)
union Artifact switch (ArtifactKind) {
case ArtifactKind::Hir:
ArtifactHir hir;
case ArtifactKind::HttpHir:
ArtifactHttpHir http_hir;
case ArtifactKind::File:
ArtifactFile file;
};
interface Codegen {
string get_engine_version();
::xidl_parser::hir::ParserProperties get_properties();
sequence<Artifact> generate(
in ::xidl_parser::hir::Specification hir,
in string path,
in ::xidl_parser::hir::ParserProperties props
);
};