Crates.io | librunner |
lib.rs | librunner |
version | 0.7.0 |
source | src |
created_at | 2023-05-03 02:58:43.478479 |
updated_at | 2024-03-29 21:31:21.357965 |
description | Rust library to assist runners on planning their workouts, races, and improve their health. |
homepage | |
repository | https://github.com/geekrunners/librunner |
max_upload_size | |
id | 855094 |
size | 47,387 |
Rust package to assist runners in planning workouts, completing races, and improving health.
Let's go through these quick steps to get started with LibRunner:
visit https://rustup.rs and install rustup, an installer for the programming language Rust. Once installed, update and check the toolchain:
$ rustup update
$ rustc --version
$ cargo --version
create your new running application:
$ cargo new runningapp
a folder called runningapp
is created. Go into it and run the project:
$ cd runningapp
$ cargo run
it prints "Hello World", meaning you have a working code to start from. Open the project in your favorite code editor and make two changes:
4.1. add LibRunner to the project's dependencies:
$ cargo add librunner
It adds a new dependency to your Cargo.toml
file:
[dependencies]
librunner = "0.6.0"
4.2. replace the content of the file src/main.rs
with the code below:
use std::time::Duration;
use librunner::running::Race;
use librunner::running::Running;
use librunner::running::MetricRace;
use librunner::running::ImperialRace;
use librunner::running::MetricRunning;
use librunner::running::ImperialRunning;
use librunner::utils::converter;
use librunner::utils::formatter;
fn main() {
let duration = converter::to_duration(4, 0, 0); // 04:00:00
let m_marathon: MetricRace = Race::new(42195);
let m_running: MetricRunning = Running::new(duration);
println!("The pace to run {}km in {}h is approximately {}/km at {:.2}km/h",
converter::to_km(m_marathon.distance),
formatter::format_duration(m_running.duration()),
formatter::format_duration(m_running.average_pace(&m_marathon)),
converter::to_km_h(m_running.speed(&m_marathon)));
let i_marathon: ImperialRace = Race::new(46112);
let i_running: ImperialRunning = Running::new(duration);
println!("The pace to run {} miles in {}h is approximately {}/mile at {:.2}mph",
converter::to_mile(i_marathon.distance),
formatter::format_duration(i_running.duration()),
formatter::format_duration(i_running.average_pace(&i_marathon)),
converter::to_mph(i_running.speed(&i_marathon)));
}
then run the project again:
$ cargo run
which generates the following output:
The pace to run 42.195km in 04:00:00h is approximately 05:41/km at 10.55km/h
The pace to run 26.2 miles in 04:00:00h is approximately 09:09/mile at 6.55mph
LibRunner is used under the terms of the Apache License version 2.0.