Plandex_backup / app /server /syntax /file_map /examples /elixir_example.ex
google-labs-jules[bot]
Final deployment for HF with landing page
93d826e
defmodule ExampleApp do
# Module attributes
@default_timeout 5000
@version "1.0.0"
# Protocol definition
defprotocol Formatter do
@doc "Format the data for display"
def format(data)
end
# Protocol implementation
defimpl Formatter, for: Map do
def format(data) do
inspect(data, pretty: true)
end
end
# Struct definition
defstruct name: "", age: 0, email: nil
# Exception definition
defexception message: "A custom error occurred"
# Callback definition
@callback process(term) :: {:ok, term} | {:error, term}
@macrocallback validate(term) :: Macro.t()
# Public function
def calculate_age(birth_year) when is_integer(birth_year) do
current_year = DateTime.utc_now().year
current_year - birth_year
end
# Private function
defp validate_email(email) do
String.match?(email, ~r/^[^\s]+@[^\s]+\.[^\s]+$/)
end
# Function with pattern matching
def handle_result({:ok, value}), do: "Success: #{value}"
def handle_result({:error, reason}), do: "Error: #{reason}"
def handle_result(_), do: "Unknown result"
# Macro definition
defmacro debug(expression) do
quote do
IO.puts "Debug: #{inspect(unquote(expression))}"
end
end
# Private macro
defmacrop log(message) do
quote do
IO.puts("[#{__MODULE__}] #{unquote(message)}")
end
end
# Guard definition
defguard is_positive(value) when is_integer(value) and value > 0
defguardp is_even(value) when is_integer(value) and rem(value, 2) == 0
# Function delegation
defdelegate parse_int(string), to: String, as: :to_integer
# Overridable function
defoverridable [process: 1]
# Using with for complex operations
def create_user(params) do
with {:ok, name} <- Map.fetch(params, "name"),
{:ok, email} <- Map.fetch(params, "email"),
true <- validate_email(email) do
%ExampleApp{name: name, email: email}
else
:error -> {:error, "Missing required fields"}
false -> {:error, "Invalid email format"}
end
end
end