Skip to content

Protocols can't be quoted? #875

@devinus

Description

@devinus
defmodule Adapter do
  defmacro defadapter(name) do
    quote do
      defprotocol unquote(name) do
        def create(rec)
        def read(rec)
        def update(rec)
        def delete(rec)
        def exists?(rec)
      end
    end
  end
end

import Adapter

defadapter Adapters.Memory

defrecord Contact, id: nil, name: nil

defimpl Adapters.Memory, for: Contact do
  def create(_rec) do
  end

  def read(_rec) do
  end

  def update(_rec) do
  end

  def delete(_rec) do
  end

  def exists?(_rec) do
  end
end

Will give "behaviour Adapters.Memory undefined"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions