-module(cake@internal@example@cake_write_queries). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([new/0, to_insert_query/1]). -export_type([wibble/0]). -type wibble() :: {wibble, binary(), integer(), boolean()}. -spec new() -> wibble(). new() -> {wibble, <<"Wibble"/utf8>>, 42, true}. -spec caster(wibble()) -> cake@internal@write_query:insert_row(). caster(Wibble) -> {wibble, Name, Age, Is_wild} = Wibble, {insert_row, [{insert_param, <<"name"/utf8>>, begin _pipe = Name, cake@param:string(_pipe) end}, {insert_param, <<"age"/utf8>>, begin _pipe@1 = Age, cake@param:int(_pipe@1) end}, {insert_param, <<"is_wild"/utf8>>, begin _pipe@2 = Is_wild, cake@param:bool(_pipe@2) end}]}. -spec to_insert_query(list(wibble())) -> cake@internal@write_query:write_query(wibble()). to_insert_query(Wibbles) -> _pipe = {insert, {insert_into_table, <<"cats"/utf8>>}, {insert_columns, [<<"name"/utf8>>, <<"age"/utf8>>, <<"is_wild"/utf8>>]}, no_insert_modifier, {insert_source_records, Wibbles, fun caster/1}, insert_conflict_error, no_returning, no_comment}, cake@internal@write_query:to_insert_query(_pipe).