Skip to main content

git_koi/
lib.rs

1//! Draw a pixel-art koi from a GitHub account's public activity.
2//!
3//! The pipeline runs one way, and each module owns one stage of it:
4//!
5//! 1. [`collect`] gathers an [`history::AccountSnapshot`] through the GitHub CLI.
6//! 2. [`history`] reads and writes snapshots and derives language shares and weekly
7//!    participation from them.
8//! 3. [`koi`] turns a snapshot into a [`koi::KoiDevelopment`]: identity, language colors,
9//!    growth, streaks, and recent activity.
10//! 4. [`behavior`] chooses the day's [`behavior::Behavior`] from that activity, and
11//!    [`motion`] gives the pose for each frame of the behavior's loop.
12//! 5. [`markings`] measures how strongly the streaks show, and [`coat`] names the bodies
13//!    the koi can wear and colors it from its languages.
14//! 6. [`render`] draws a [`render::KoiFrame`], still or swimming, and [`output`] encodes
15//!    it as PNG, SVG, or a looping GIF, with a preview page.
16//!
17//! Everything after collection is deterministic: it reads no clock, performs no I/O, and
18//! mutates no input. Callers own files and publication. The `git-koi` command composes
19//! these stages; the repository's getting-started guide covers the command and the GitHub
20//! Action. Breaking changes to this API bump the major version.
21#![warn(missing_docs)]
22
23pub mod behavior;
24pub mod coat;
25pub mod collect;
26pub mod history;
27pub mod koi;
28pub mod markings;
29pub mod motion;
30pub mod output;
31pub mod render;