1 viewer
rust 1,847,280 · typescript 232,434 · javascript 131,101 · python 19,227 · 6,362 files · digest 755e2ee30522 · built in 2.3 s · crystals off
cre8-app-breath breath cargo crate
BreathApp — breath-exercise tracker that grows into a smart incentive spirometer. Sessions carry per-breath inspiratory volume + hold readings (manual today, ESP sensor tomorrow); a personalized BreathGoal drives nudge reminders.
11workspace deps
2direct dependents
9transitive dependents
59calls out
2calls in
116call-graph weight
0.0%exact crystals
Neighbourhood
Left: crates that declare this one. Right: crates it declares (dev-dependencies included). Edge width grows with resolved calls.
Files
lowhigh
File call graph
Resolved calls between this crate's files, callers left of callees.
Heaviest functions
By call-graph weight (PageRank; 1.0 is the average function). 132 functions in all.
| function | kind | lines | cyclomatic | callers | callees | weight | crystal |
|---|---|---|---|---|---|---|---|
| sanitize_idsrc/store.rs:47 | fn | 16 | 5 | 11 | 1 | 5.3 | |
| value_to_u64src/store.rs:97 | fn | 3 | 1 | 4 | 0 | 3.6 | |
| canonical_subjectsrc/store.rs:65 | fn | 6 | 2 | 9 | 1 | 2.1 | |
| normalize_phasesrc/store.rs:759 | fn | 6 | 1 | 1 | 2 | 2.1 | |
| parse_actionsrc/connection.rs:257 | fn | 6 | 1 | 3 | 2 | 2.1 | |
| breath_volumesrc/store.rs:89 | fn | 7 | 2 | 1 | 1 | 1.9 | |
| compute_adherencesrc/store.rs:1135 | fn | 56 | 10 | 4 | 6 | 1.9 | |
| normalize_phasessrc/store.rs:767 | fn | 5 | 1 | 2 | 1 | 1.9 | |
| canonical_phase_kindsrc/store.rs:749 | fn | 9 | 4 | 2 | 0 | 1.8 | |
| normalize_breathsrc/store.rs:104 | fn | 16 | 2 | 2 | 1 | 1.7 | |
| connectsrc/connection.rs:318 | fn | 5 | 1 | 4 | 2 | 1.7 | |
| require_strsrc/connection.rs:280 | fn | 3 | 1 | 5 | 0 | 1.5 | |
| effective_pattern_slugsrc/store.rs:797 | fn | 9 | 3 | 4 | 1 | 1.5 | |
| status_responsesrc/connection.rs:324 | fn | 3 | 1 | 1 | 0 | 1.5 | |
| runsrc/init.rs:9 | fn | 32 | 2 | 3 | 3 | 1.5 | |
| meansrc/store.rs:1081 | fn | 3 | 2 | 2 | 0 | 1.4 | |
| breath_panelsrc/view_templates.rs:166 | fn | 7 | 1 | 3 | 0 | 1.4 | |
| infer_action_from_fieldssrc/connection.rs:264 | fn | 15 | 7 | 1 | 0 | 1.4 | |
| compute_statssrc/store.rs:127 | fn | 12 | 3 | 2 | 0 | 1.3 | |
| append_readingsrc/store.rs:365 | fn | 76 | 4 | 2 | 10 | 1.2 | |
| parse_breath_framesrc/store.rs:448 | fn | 10 | 3 | 2 | 3 | 1.2 | |
| handler_forsrc/connection.rs:314 | fn | 3 | 1 | 1 | 1 | 1.2 | |
| csv_volume_or_nonesrc/store.rs:481 | fn | 3 | 2 | 1 | 0 | 1.2 | |
| get_patternsrc/store.rs:888 | fn | 4 | 1 | 4 | 5 | 1.2 | |
| get_sessionsrc/store.rs:568 | fn | 4 | 1 | 4 | 5 | 1.2 | |
| upsert_patternsrc/store.rs:874 | fn | 13 | 1 | 2 | 5 | 1.1 | |
| breath_doc_patch_valuesrc/view_templates.rs:196 | fn | 10 | 3 | 2 | 4 | 1.1 | |
| derive_session_idsrc/store.rs:74 | fn | 4 | 1 | 3 | 1 | 1.1 | |
| build_pattern_propssrc/store.rs:807 | fn | 26 | 2 | 2 | 1 | 1.1 | |
| get_goalsrc/store.rs:658 | fn | 4 | 1 | 3 | 5 | 1.1 | |
| upsert_vertexsrc/store.rs:307 | fn | 4 | 1 | 4 | 0 | 1.1 | |
| goal_vertex_idsrc/store.rs:34 | fn | 3 | 1 | 3 | 0 | 1.1 | |
| extract_device_framessrc/store.rs:488 | fn | 21 | 2 | 2 | 0 | 1.1 | |
| ingest_framessrc/store.rs:512 | fn | 40 | 3 | 2 | 3 | 1.1 | |
| statussrc/store.rs:722 | fn | 21 | 1 | 2 | 2 | 1.1 | |
| session_vertex_idsrc/store.rs:30 | fn | 3 | 1 | 4 | 0 | 1 | |
| pattern_vertex_idsrc/store.rs:38 | fn | 3 | 1 | 3 | 0 | 1 | |
| adherence_htmlsrc/view_templates.rs:207 | fn | 30 | 4 | 2 | 1 | 1 | |
| volume_displaysrc/view_templates.rs:238 | fn | 3 | 2 | 2 | 0 | 1 | |
| seed_builtin_patternssrc/store.rs:1045 | fn | 20 | 3 | 2 | 4 | 1 |
Outside the workspace
anyhow hyperdb serde serde_json