Skip to main content

floopy/resources/
mod.rs

1//! Typed handles for every Floopy-only gateway resource. Obtain them from
2//! the [`Floopy`](crate::Floopy) client (e.g. `client.decisions()`).
3
4mod constraints;
5mod decisions;
6mod evaluations;
7mod experiments;
8mod export;
9mod feedback;
10mod routing;
11mod sessions;
12
13pub use constraints::Constraints;
14pub use decisions::Decisions;
15pub use evaluations::Evaluations;
16pub use experiments::Experiments;
17pub use export::{DecisionExportStream, Export};
18pub use feedback::Feedback;
19pub use routing::Routing;
20pub use sessions::Sessions;
21
22use crate::error::{Error, Result};
23
24/// Resources expect a body on every non-204 endpoint; treat an empty body
25/// as a decode error.
26pub(crate) fn require<T>(data: Option<T>) -> Result<T> {
27    data.ok_or_else(|| Error::Decode("gateway returned an empty response body".to_owned()))
28}