Skip to main content

kallo_api/
lib.rs

1//! The use case, apart from the interface that asked for it.
2//!
3//! `kallo-core` is the model; this crate is what you do with it. A
4//! photograph is read once, metered, developed at a time and printed on a
5//! paper; a contact proof is the same photograph exposed once through a ladder
6//! of times; a roll is both, from one decode. All of it was written inside
7//! `kalo` first, where the only way to reach it was a command line. It lives
8//! here now because the app reaches the same work through a function call, and
9//! two implementations of "develop a roll" would be one too many.
10//!
11//! The entry points are [`render()`], [`contact()`] and [`roll()`]. The first
12//! two take a decoded image; the third reads the photograph itself, because a
13//! roll is exactly the case where reading it once matters. A bench session
14//! ([`PreviewSession`]) is the same idea for a window: read the photograph once,
15//! then print as many previews of it as the person drags past.
16
17pub mod catalogue;
18pub mod chart;
19pub mod contact;
20pub mod device;
21pub mod error;
22pub mod input;
23pub mod preview;
24pub mod render;
25pub mod roll;
26pub mod selection;
27
28pub use chart::{
29    FilmCurve, FrameChart, PaperChart, PrintChart, PrintChartOptions, chart, chart_for, film_curve,
30    paper_chart, print_chart, print_chart_with,
31};
32pub use contact::{ContactOptions, ContactOutcome, contact, ladder};
33pub use device::{RenderDevice, render_device};
34pub use error::Error;
35pub use input::read_input;
36pub use preview::{PreviewFrame, PreviewRequest, PreviewSession};
37pub use render::{
38    Backend, Exposure, OwnedFinishing, RenderOptions, RenderOutcome, render, render_image,
39};
40pub use roll::{Progress, RollOutcome, RollRequest, roll};
41pub use selection::{Selection, StockChoice, camera_profile, check_model, resolve};