From 588f11e7bcfb23731889e6c8d576eb880bb60192 Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 5 May 2022 19:50:19 +0200 Subject: [PATCH] add elixir project files --- .formatter.exs | 4 ++++ .gitignore | 26 ++++++++++++++++++++++++++ lib/ssb_bfe.ex | 18 ++++++++++++++++++ lib/ssb_bfe/encoder.ex | 5 +++++ lib/ssb_bfe/types.ex | 21 +++++++++++++++++++++ mix.exs | 28 ++++++++++++++++++++++++++++ test/ssb_bfe_test.exs | 8 ++++++++ test/test_helper.exs | 1 + 8 files changed, 111 insertions(+) create mode 100644 .formatter.exs create mode 100644 .gitignore create mode 100644 lib/ssb_bfe.ex create mode 100644 lib/ssb_bfe/encoder.ex create mode 100644 lib/ssb_bfe/types.ex create mode 100644 mix.exs create mode 100644 test/ssb_bfe_test.exs create mode 100644 test/test_helper.exs diff --git a/.formatter.exs b/.formatter.exs new file mode 100644 index 0000000..d2cda26 --- /dev/null +++ b/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8f6a4a6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where third-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +ssb_bfe-*.tar + +# Temporary files, for example, from tests. +/tmp/ diff --git a/lib/ssb_bfe.ex b/lib/ssb_bfe.ex new file mode 100644 index 0000000..608e9ad --- /dev/null +++ b/lib/ssb_bfe.ex @@ -0,0 +1,18 @@ +defmodule SsbBfe do + @moduledoc """ + Documentation for `SsbBfe`. + """ + + @doc """ + Hello world. + + ## Examples + + iex> SsbBfe.hello() + :world + + """ + def hello do + :world + end +end diff --git a/lib/ssb_bfe/encoder.ex b/lib/ssb_bfe/encoder.ex new file mode 100644 index 0000000..1dca7cd --- /dev/null +++ b/lib/ssb_bfe/encoder.ex @@ -0,0 +1,5 @@ +defmodule SsbBfe.Encoder do + def encode_bool(blob_id) do + # Enum.sum(list) / Kernel.length(list) + end +end diff --git a/lib/ssb_bfe/types.ex b/lib/ssb_bfe/types.ex new file mode 100644 index 0000000..ad53a21 --- /dev/null +++ b/lib/ssb_bfe/types.ex @@ -0,0 +1,21 @@ +defmodule SsbBfe.Types do + @doc ~S""" + Take a blob ID as a string and return the encoded bytes representing the blob + type-format. Return `nil` if the ID does not end with `.sha256`. + """ + def get_blob_type(blob_id) do + if String.ends_with?(blob_id, ".sha256") do + <<2, 0>> + end + end + + @doc ~S""" + Take a feed ID (key) as a string and return the encoded bytes representing + the feed type-format. Return `nil` if the ID does not end with `.ed25519`. + """ + def get_feed_type(feed_id) do + if String.ends_with?(feed_id, ".ed25519") do + <<0, 0>> + end + end +end diff --git a/mix.exs b/mix.exs new file mode 100644 index 0000000..bdcf03d --- /dev/null +++ b/mix.exs @@ -0,0 +1,28 @@ +defmodule SsbBfe.MixProject do + use Mix.Project + + def project do + [ + app: :ssb_bfe, + version: "0.1.0", + elixir: "~> 1.13", + start_permanent: Mix.env() == :prod, + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + # {:dep_from_hexpm, "~> 0.3.0"}, + # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"} + ] + end +end diff --git a/test/ssb_bfe_test.exs b/test/ssb_bfe_test.exs new file mode 100644 index 0000000..0df39be --- /dev/null +++ b/test/ssb_bfe_test.exs @@ -0,0 +1,8 @@ +defmodule SsbBfeTest do + use ExUnit.Case + doctest SsbBfe + + test "greets the world" do + assert SsbBfe.hello() == :world + end +end diff --git a/test/test_helper.exs b/test/test_helper.exs new file mode 100644 index 0000000..869559e --- /dev/null +++ b/test/test_helper.exs @@ -0,0 +1 @@ +ExUnit.start()