// AUTO-GENERATED BY DAGGER_GLEAM - DO NOT EDIT import dagger/types.{type Client, type Try} as types import dagger/interpreter import dagger/dsl/types as t import gleam/dynamic/decode import gleam/list pub fn generator(id id: t.Generator) -> t.Generator { let field = types.Field(name: "loadGeneratorFromID", args: [#("id", types.GDeferred(id.op))], subfields: []) t.Generator(op: types.Pure([field])) } /// The generated changeset pub fn changes(parent: t.Generator) -> t.Changeset { let field = types.Field(name: "changes", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.Changeset(op: new_op) } /// Whether the generator complete pub fn completed(parent: t.Generator, client client: Client, then handler: fn(Try(Bool)) -> a) -> a { let field = types.Field(name: "completed", args: [], subfields: []) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.bool)) { Ok(val) -> types.Pure(Ok(val)) Error(_) -> types.Pure(Error(types.DecodingError("completed"))) } } ) } handler(interpreter.run(op, client)) } /// Return the description of the generator pub fn description(parent: t.Generator, client client: Client, then handler: fn(Try(String)) -> a) -> a { let field = types.Field(name: "description", args: [], subfields: []) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.string)) { Ok(val) -> types.Pure(Ok(val)) Error(_) -> types.Pure(Error(types.DecodingError("description"))) } } ) } handler(interpreter.run(op, client)) } /// A unique identifier for this Generator. pub fn id(parent: t.Generator) -> t.Generator { let field = types.Field(name: "id", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.Generator(op: new_op) } /// Wether changeset from the generator execution is empty or not pub fn is_empty(parent: t.Generator, client client: Client, then handler: fn(Try(Bool)) -> a) -> a { let field = types.Field(name: "isEmpty", args: [], subfields: []) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.bool)) { Ok(val) -> types.Pure(Ok(val)) Error(_) -> types.Pure(Error(types.DecodingError("isEmpty"))) } } ) } handler(interpreter.run(op, client)) } /// Return the fully qualified name of the generator pub fn name(parent: t.Generator, client client: Client, then handler: fn(Try(String)) -> a) -> a { let field = types.Field(name: "name", args: [], subfields: []) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.string)) { Ok(val) -> types.Pure(Ok(val)) Error(_) -> types.Pure(Error(types.DecodingError("name"))) } } ) } handler(interpreter.run(op, client)) } /// The original module in which the generator has been defined pub fn original_module(parent: t.Generator) -> t.Module { let field = types.Field(name: "originalModule", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.Module(op: new_op) } /// The path of the generator within its module pub fn path(parent: t.Generator, client client: Client, then handler: fn(Try(List(String))) -> a) -> a { let field = types.Field(name: "path", args: [], subfields: []) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.list(decode.string))) { Ok(val) -> types.Pure(Ok(val)) Error(_) -> types.Pure(Error(types.DecodingError("path"))) } } ) } handler(interpreter.run(op, client)) } /// Execute the generator pub fn run(parent: t.Generator) -> t.Generator { let field = types.Field(name: "run", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.Generator(op: new_op) }