thruster-rs / Thruster

A fast, middleware based, web framework written in Rust
MIT License
1.06k stars 47 forks source link

Route parameters with async await? #116

Closed xacrimon closed 5 years ago

xacrimon commented 5 years ago

Currently when i try to use route parameters i get a panic with the message Chain out of cycle from the thruster-core-async-await crate L39.

trezm commented 5 years ago

Yikes! Can you provide a code sample to replicate the issue? Usually that happens when next is called but there isn't any more middleware to next to.

xacrimon commented 5 years ago

Sure i can! Happy you could respond so quickly. The offending code is here https://gitlab.nebulanet.cc/xacrimon/meme-api. Its very small. The problem happens with the routing and execution of the h_v2_random handler. When i specify a parameter it works without issues but if i omit the parameter it panics while i would expect it to not match the route.

trezm commented 5 years ago

Anything for dank memes!

Im on my phone right now, but will be able to get a closer look tomorrow when I'm near a computer.

On Thu, Jul 4, 2019, 5:49 PM Acrimon notifications@github.com wrote:

Sure i can! Happy you could respond so quickly. The offending code is here https://gitlab.nebulanet.cc/xacrimon/meme-api. Its very small. The problem happens with the routing and execution of the h_v2_random handler. When i specify a parameter it works without issues but if i omit the parameter it panics while i would expect it to not match the route.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/trezm/Thruster/issues/116?email_source=notifications&email_token=AAJWOLISHVCXQUHQ3D2A5YTP5ZV7ZA5CNFSM4H6AAR22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZIFO5I#issuecomment-508581749, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJWOLND4QPDPJD5OGHXPLDP5ZV7ZANCNFSM4H6AAR2Q .

xacrimon commented 5 years ago

Alright. Do so. I do have a suspicion it is due to the route matching erroneously without queueing the middleware. Thus it causing an out-of-chain.