lib/fastagi.ex
defmodule Fastagi do
  @callback handle_connection(socket :: term) :: :ok | :error
  defmacro __using__(_opts) do
    quote location: :keep do
      @behaviour Fastagi
      def handle_connection(_sock) do
        raise "attempt to call Fastagi.Server but no handle_connection/1 provided"
      end
      defoverridable handle_connection: 1
    end
  end
end