Packages

Elixir bindings to Rust vl-convert library

Current section

Files

Jump to
vega_lite_convert lib vega_lite convert native.ex
Raw

lib/vega_lite/convert/native.ex

defmodule VegaLite.Convert.Native do
@moduledoc false
mix_config = Mix.Project.config()
version = mix_config[:version]
github_url = mix_config[:package][:links]["GitHub"]
# The targets we support are limited by https://github.com/denoland/rusty_v8
targets = ~w(
aarch64-apple-darwin
aarch64-unknown-linux-gnu
x86_64-apple-darwin
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu
)
use RustlerPrecompiled,
otp_app: :vega_lite_convert,
crate: "ex_vl_convert",
version: version,
base_url: "#{github_url}/releases/download/v#{version}",
targets: targets,
# We don't use any features of newer NIF versions, so 2.15 is enough.
nif_versions: ["2.15"],
force_build: System.get_env("VEGA_LITE_CONVERT_BUILD") in ["1", "true"]
# Vega related NIF functions
def vega_to_html(_vg_json_spec, _bundle, _renderer), do: :erlang.nif_error(:nif_not_loaded)
def vega_to_jpeg(_vg_json_spec, _scale, _quality), do: :erlang.nif_error(:nif_not_loaded)
def vega_to_pdf(_vg_json_spec), do: :erlang.nif_error(:nif_not_loaded)
def vega_to_png(_vg_json_spec, _scale, _ppi), do: :erlang.nif_error(:nif_not_loaded)
def vega_to_svg(_vg_json_spec), do: :erlang.nif_error(:nif_not_loaded)
# VegaLite related NIF functions
def vegalite_to_html(_vg_json_spec, _bundle, _renderer), do: :erlang.nif_error(:nif_not_loaded)
def vegalite_to_jpeg(_vl_json_spec, _scale, _quality), do: :erlang.nif_error(:nif_not_loaded)
def vegalite_to_pdf(_vl_json_spec), do: :erlang.nif_error(:nif_not_loaded)
def vegalite_to_png(_vl_json_spec, _scale, _ppi), do: :erlang.nif_error(:nif_not_loaded)
def vegalite_to_svg(_vl_json_spec), do: :erlang.nif_error(:nif_not_loaded)
def vegalite_to_vega(_vl_json_spec), do: :erlang.nif_error(:nif_not_loaded)
end