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 batches;
5mod constraints;
6mod decisions;
7mod evaluations;
8mod experiments;
9mod export;
10mod feedback;
11mod files;
12mod routing;
13mod sessions;
14
15pub use batches::Batches;
16pub use constraints::Constraints;
17pub use decisions::Decisions;
18pub use evaluations::Evaluations;
19pub use experiments::Experiments;
20pub use export::{DecisionExportStream, Export};
21pub use feedback::Feedback;
22pub use files::Files;
23pub use routing::Routing;
24pub use sessions::Sessions;
25
26use crate::error::{Error, Result};
27
28/// Resources expect a body on every non-204 endpoint; treat an empty body
29/// as a decode error.
30pub(crate) fn require<T>(data: Option<T>) -> Result<T> {
31    data.ok_or_else(|| Error::Decode("gateway returned an empty response body".to_owned()))
32}