diff --git a/src/Gemenon.jl b/src/Gemenon.jl index 9839ba5..76c0e89 100644 --- a/src/Gemenon.jl +++ b/src/Gemenon.jl @@ -8,15 +8,7 @@ include("types.jl") include("server.jl") -import Base.write -write(c::Connection, data::Vector{UInt8}) = OpenSSL.write(c.client, data) -function write(conn::Connection, s::Status) - write(conn.client, - string(s.major, s.minor, ' ', s.meta, '\r', '\n')) -end -function write(conn::Connection, r::Response) - write(conn, r.status) - write(conn.client, r.body) -end +include("rw.jl") +export link, document, status, not_found end # module diff --git a/src/rw.jl b/src/rw.jl new file mode 100644 index 0000000..ddfc54b --- /dev/null +++ b/src/rw.jl @@ -0,0 +1,16 @@ +import Base.write +write(c::Connection, data::Vector{UInt8}) = OpenSSL.write(c.client, data) +function write(conn::Connection, s::Status) + write(conn.client, + string(s.major, s.minor, ' ', s.meta, '\r', '\n')) +end +function write(conn::Connection, r::Response) + write(conn, r.status) + write(conn.client, r.body) +end + +status(conn::Connection, s...) = write(conn, Status(s...)) +not_found(conn::Connection, meta = "Not Found") = status(conn, 51, meta) +document(conn::Connection, body) = + write(conn, Response(Status(20, "text/gemini"), body)) +link(dst, name = dst) = string("=> ", dst, " ", name)