Packages

A delightful ORM (?) for Gleam! 🍳

Current section

Files

Jump to
ormlette src ormlette@repo@utils.erl
Raw

src/ormlette@repo@utils.erl

-module(ormlette@repo@utils).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([wrap_pgo/1, wrap_cake/1]).
-file("/Users/ashercohen/Desktop/gleam/ormlette/src/ormlette/repo/utils.gleam", 6).
-spec wrap_pgo(gleam@dynamic:dynamic_()) -> gleam@pgo:value().
wrap_pgo(Value) ->
case gleam@dynamic:classify(Value) of
<<"String"/utf8>> ->
gleam_pgo_ffi:coerce(
gleam@result:unwrap(gleam@dynamic:string(Value), <<""/utf8>>)
);
<<"Int"/utf8>> ->
gleam_pgo_ffi:coerce(
gleam@result:unwrap(gleam@dynamic:int(Value), 1)
);
<<"Bool"/utf8>> ->
gleam_pgo_ffi:coerce(
gleam@result:unwrap(gleam@dynamic:bool(Value), true)
);
<<"Float"/utf8>> ->
gleam_pgo_ffi:coerce(
gleam@result:unwrap(gleam@dynamic:float(Value), +0.0)
);
_ ->
erlang:error(#{gleam_error => panic,
message => <<"`panic` expression evaluated."/utf8>>,
module => <<"ormlette/repo/utils"/utf8>>,
function => <<"wrap_pgo"/utf8>>,
line => 12})
end.
-file("/Users/ashercohen/Desktop/gleam/ormlette/src/ormlette/repo/utils.gleam", 16).
-spec wrap_cake(gleam@dynamic:dynamic_()) -> cake@internal@write_query:insert_value().
wrap_cake(Value) ->
case gleam@dynamic:classify(Value) of
<<"String"/utf8>> ->
cake@insert:string(
gleam@result:unwrap(gleam@dynamic:string(Value), <<""/utf8>>)
);
<<"Int"/utf8>> ->
cake@insert:int(gleam@result:unwrap(gleam@dynamic:int(Value), 1));
<<"Bool"/utf8>> ->
cake@insert:bool(
gleam@result:unwrap(gleam@dynamic:bool(Value), true)
);
<<"Float"/utf8>> ->
cake@insert:float(
gleam@result:unwrap(gleam@dynamic:float(Value), +0.0)
);
_ ->
erlang:error(#{gleam_error => panic,
message => <<"`panic` expression evaluated."/utf8>>,
module => <<"ormlette/repo/utils"/utf8>>,
function => <<"wrap_cake"/utf8>>,
line => 22})
end.