# Generated by SnakeBridge v0.12.0 - DO NOT EDIT MANUALLY # Regenerate with: mix compile # Library: dspy 3.1.2 # Python module: dspy.dsp.utils # Python class: dotdict defmodule Dspy.Dsp.Utils.Dotdict do def __snakebridge_python_name__, do: "dspy.dsp.utils" def __snakebridge_python_class__, do: "dotdict" def __snakebridge_library__, do: "dspy" @opaque t :: SnakeBridge.Ref.t() @spec new(list(term()), keyword()) :: {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()} def new(args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_class(__MODULE__, :__init__, [] ++ List.wrap(args), opts) end @spec clear(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec clear( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def clear(ref) do SnakeBridge.Runtime.call_method(ref, :clear, [], []) end def clear(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [], opts) end def clear(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1], []) end def clear(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1], opts) end def clear(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2], []) end def clear(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2], opts) end def clear(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3], []) end def clear(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3], opts) end def clear(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4], []) end def clear(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4], opts) end def clear(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5], []) end def clear(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5], opts) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def clear(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :clear, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec copy(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec copy( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def copy(ref) do SnakeBridge.Runtime.call_method(ref, :copy, [], []) end def copy(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [], opts) end def copy(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1], []) end def copy(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1], opts) end def copy(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2], []) end def copy(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2], opts) end def copy(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3], []) end def copy(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3], opts) end def copy(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4], []) end def copy(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4], opts) end def copy(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5], []) end def copy(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5], opts) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def copy(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :copy, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec fromkeys(SnakeBridge.Ref.t(), term(), list(term()), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def fromkeys(ref, iterable, args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_method(ref, :fromkeys, [iterable] ++ List.wrap(args), opts) end @spec get(SnakeBridge.Ref.t(), term(), list(term()), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def get(ref, key, args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_method(ref, :get, [key] ++ List.wrap(args), opts) end @spec items(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec items( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def items(ref) do SnakeBridge.Runtime.call_method(ref, :items, [], []) end def items(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [], opts) end def items(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :items, [arg1], []) end def items(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1], opts) end def items(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2], []) end def items(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2], opts) end def items(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3], []) end def items(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3], opts) end def items(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4], []) end def items(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4], opts) end def items(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5], []) end def items(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5], opts) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def items(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :items, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec keys(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec keys( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def keys(ref) do SnakeBridge.Runtime.call_method(ref, :keys, [], []) end def keys(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [], opts) end def keys(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1], []) end def keys(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1], opts) end def keys(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2], []) end def keys(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2], opts) end def keys(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3], []) end def keys(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3], opts) end def keys(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4], []) end def keys(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4], opts) end def keys(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5], []) end def keys(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5], opts) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def keys(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :keys, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec pop(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec pop( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def pop(ref) do SnakeBridge.Runtime.call_method(ref, :pop, [], []) end def pop(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [], opts) end def pop(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1], []) end def pop(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1], opts) end def pop(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2], []) end def pop(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2], opts) end def pop(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3], []) end def pop(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3], opts) end def pop(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4], []) end def pop(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4], opts) end def pop(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5], []) end def pop(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5], opts) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def pop(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :pop, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec popitem(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def popitem(ref, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :popitem, [], opts) end @spec setdefault(SnakeBridge.Ref.t(), term(), list(term()), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def setdefault(ref, key, args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_method(ref, :setdefault, [key] ++ List.wrap(args), opts) end @spec update(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec update( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def update(ref) do SnakeBridge.Runtime.call_method(ref, :update, [], []) end def update(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [], opts) end def update(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :update, [arg1], []) end def update(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1], opts) end def update(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2], []) end def update(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2], opts) end def update(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3], []) end def update(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3], opts) end def update(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4], []) end def update(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4], opts) end def update(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4, arg5], []) end def update(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4, arg5], opts) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts ) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def update(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :update, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end @spec values(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values(SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term()) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} @spec values( SnakeBridge.Ref.t(), term(), term(), term(), term(), term(), term(), term(), term(), keyword() ) :: {:ok, term()} | {:error, Snakepit.Error.t()} def values(ref) do SnakeBridge.Runtime.call_method(ref, :values, [], []) end def values(ref, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [], opts) end def values(ref, arg1) do SnakeBridge.Runtime.call_method(ref, :values, [arg1], []) end def values(ref, arg1, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1], opts) end def values(ref, arg1, arg2) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2], []) end def values(ref, arg1, arg2, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2], opts) end def values(ref, arg1, arg2, arg3) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3], []) end def values(ref, arg1, arg2, arg3, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3], opts) end def values(ref, arg1, arg2, arg3, arg4) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4], []) end def values(ref, arg1, arg2, arg3, arg4, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4], opts) end def values(ref, arg1, arg2, arg3, arg4, arg5) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4, arg5], []) end def values(ref, arg1, arg2, arg3, arg4, arg5, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4, arg5], opts) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6], []) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6], opts) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do SnakeBridge.Runtime.call_method(ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], []) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6, arg7], opts ) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do SnakeBridge.Runtime.call_method( ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], [] ) end def values(ref, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, opts) when is_list(opts) and (opts == [] or (is_tuple(hd(opts)) and tuple_size(hd(opts)) == 2 and is_atom(elem(hd(opts), 0)))) do SnakeBridge.Runtime.call_method( ref, :values, [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8], opts ) end end