All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ocaml.model.mustache Maven / Gradle / Ivy

The newest version!
{{>partial_header}}
{{#models}}
{{#model}}
{{#description}}
 * Schema {{{classname}}} : {{{description}}}
 *)
{{/description}}
{{^description}}
 *)
{{/description}}

{{^isEnum}}
type t = {
{{#vars}}
    {{#description}}
    (* {{{.}}} *)
    {{/description}}
    {{#isEnum}}
      {{{name}}}: {{^isMap}}Enums.{{/isMap}}{{{datatypeWithEnum}}}
        {{^isContainer}}
          {{#required}}
            {{#defaultValue}}[@default {{{.}}}]{{/defaultValue}}
            {{#isNullable}} option [@default
              {{#defaultValue}}Some({{{.}}}){{/defaultValue}}
                {{^defaultValue}}None{{/defaultValue}}
            ]
            {{/isNullable}}
          {{/required}}
          {{^required}} option [@default
            {{#defaultValue}}Some({{{.}}}){{/defaultValue}}
            {{^defaultValue}}None{{/defaultValue}}
          ]
          {{/required}}
        {{/isContainer}}; [@key "{{{baseName}}}"]
    {{/isEnum}}
    {{^isEnum}}
      {{{name}}}: {{{datatypeWithEnum}}}
        {{^isContainer}}
          {{#required}}{{#isNullable}} option{{/isNullable}}{{/required}}
          {{^required}} option [@default None]{{/required}}
        {{/isContainer}}
        {{#isArray}}{{^required}} [@default []]{{/required}}{{/isArray}}
        ; [@key "{{{baseName}}}"]
    {{/isEnum}}
{{/vars}}
} [@@deriving yojson { strict = false }, show ];;

{{#description}}
(** {{{.}}} *)
{{/description}}
let create {{#requiredVars}}({{{name}}} : {{#isEnum}}Enums.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}} option{{/isNullable}}){{^-last}} {{/-last}}{{/requiredVars}}{{^hasRequired}}(){{/hasRequired}} : t = {
    {{#vars}}
    {{{name}}} = {{#required}}{{{name}}}{{/required}}{{^required}}{{#isContainer}}[]{{/isContainer}}{{^isContainer}}None{{/isContainer}}{{/required}};
    {{/vars}}
}
{{/isEnum}}

{{/model}}
{{/models}}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy