Current section
Files
Jump to
Current section
Files
lib/array.ex
defmodule Yex.Array do
defstruct [
:reference
]
@type t :: %__MODULE__{
reference: any()
}
def insert(%__MODULE__{} = array, index, content) do
Yex.Nif.array_insert(array, index, content)
end
def push(%__MODULE__{} = array, content) do
insert(array, __MODULE__.length(array), content)
end
def unshift(%__MODULE__{} = array, content) do
insert(array, 0, content)
end
def delete(%__MODULE__{} = array, index) do
delete_range(array, index, 1)
end
def delete_range(%__MODULE__{} = array, index, length) do
Yex.Nif.array_delete_range(array, index, length)
end
def get(%__MODULE__{} = array, index) do
Yex.Nif.array_get(array, index)
end
def to_list(%__MODULE__{} = array) do
Yex.Nif.array_to_list(array)
end
def length(%__MODULE__{} = array) do
Yex.Nif.array_length(array)
end
def to_json(%__MODULE__{} = array) do
Yex.Nif.array_to_json(array)
end
end
defmodule Yex.ArrayPrelim do
defstruct [
:list
]
def from(enumerable) do
%__MODULE__{list: Enum.to_list(enumerable)}
end
end