idl 0.1.1

Library used for the idl language.
Documentation
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?;
}