| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  |  | 
|  | Seemed to make sense to add a new error type to group the parse errors
together. | 
|  |  | 
|  |  | 
|  | Looks like we don't need to implement this hopefully. | 
|  | Turns out I don't need this `'b` lifetime in the `conduit::RequestExt`
`impl`. I had just assumed it was necessary because I copied it as `'a`
from the "missing trait methods" error message. | 
|  | Was getting this error about the lifetimes in the trait impl:
    error[E0308]: method not compatible with trait
       --> src/lib.rs:137:4
        |
    137 |    fn host(&'a self) -> conduit::Host<'a> {
        |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
        |
        = note: expected fn pointer `fn(&'a FastCgiRequest<'static>) -> conduit::Host<'a>`
                   found fn pointer `fn(&'a FastCgiRequest<'static>) -> conduit::Host<'a>`
    note: the lifetime `'a` as defined on the method body at 137:4...
       --> src/lib.rs:137:4
        |
    137 |    fn host(&'a self) -> conduit::Host<'a> {
        |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 124:6
       --> src/lib.rs:124:6
        |
    124 | impl<'a> conduit::RequestExt for FastCgiRequest {
        |      ^^
    error[E0308]: method not compatible with trait
       --> src/lib.rs:137:4
        |
    137 |    fn host(&'a self) -> conduit::Host<'a> {
        |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
        |
        = note: expected fn pointer `fn(&'a FastCgiRequest<'static>) -> conduit::Host<'a>`
                   found fn pointer `fn(&'a FastCgiRequest<'static>) -> conduit::Host<'a>`
    note: the lifetime `'a` as defined on the impl at 124:6...
       --> src/lib.rs:124:6
        |
    124 | impl<'a> conduit::RequestExt for FastCgiRequest {
        |      ^^
    note: ...does not necessarily outlive the lifetime `'a` as defined on the method body at 137:4
       --> src/lib.rs:137:4
        |
    137 |    fn host(&'a self) -> conduit::Host<'a> {
        |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Learned from these resources that the problem arose because the `impl`
uses an `'a` lifetime, but the lifetime on the `host()` method need to
be a different one:
https://github.com/rust-lang/rust/issues/56423
https://stackoverflow.com/questions/24847331/rust-lifetime-error-expected-concrete-lifetime-but-found-bound-lifetime/24848424#24848424 | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Trying out the Conduit API, as it seems like nice interface that I can
plug the FastCGI server into.
To do this, I need a server type, and some way to convert a
`fastcgi::Request` into a `conduit::Request`. Doing this with a new
local type that I can use to implement `conduit::RequestExt`. | 
|  | Build a new `http::Request` from the `fastcgi::Request` and pass it into
the closure.
Can't move `req`, so needed to change the `from` converter to take a
reference.
Update the example code to append the `http::Request` to a file for
debugging and inspection. | 
|  | So far we only added metadata and headers to the request. We also need
to include the body. | 
|  | The HTTP headers from `fastcgi` come with keys in the following format:
"HTTP_USER_AGENT", "HTTP_ACCEPT_LANGUAGE".
Since most headers use an uppercase first letter of a word with hyphen
word separators, make the conversion by:
1. Removing the `HTTP_` prefix
2. Changing `_` to `-`
3. Making the first letter of each word uppercase using the Inflector
   crate | 
|  | Currently only converts the HTTP method and URI. Still need to convert
HTTP headers. | 
|  | I want a wrapper for `fastcgi::run()` that uses `http::Request` and
`http::Response`.
Add a `lighttpd.conf` to test the FastCGI.
Print FastCGI params to give me an idea of what the request looks like. | 
|  | Created with:
    $ cargo init --lib |