library Language;
import IdlNodes.IdlNode;
import IdsNodes.IdsNode;
struct ClientType {
clientName: string,
serverName: string,
}
enum BuildType {
Release,
Debug,
}
enum ServerArg {
Run,
Build,
Generate,
}
struct ServerType {
serverName: string,
inputPath: string,
buildType: BuildType,
args: ServerArg,
}
struct DataType {
serverName: string,
inputPath: string,
}
enum RequestType {
Client: ClientType,
Server: ServerType,
Data: DataType,
}
struct LibraryItem {
nodes: IdlNode[],
hash: uint8[],
}
struct LanguageRequest {
libraries: LibraryItem[],
idsNodes: IdsNode[],
requestRype: RequestType,
}
enum ResponseType {
Generated: StorageItem[],
Undefined: string,
}
struct Source {
name: string,
txt: string,
}
struct ItemFolder {
name: string,
items: StorageItem[],
}
struct BinarySource {
name: string,
data: string,
}
enum StorageItem {
Source: Source,
Folder: Folder,
BinarySource: BinarySource,
}
struct LanguageResponse {
responseType: ResponseType,
responseMessages: string[],
}
interface IdlGen {
sendRequest: (request: LanguageRequest) -> LanguageResponse?;
}