Skip to content

Commit b9ac0a9

Browse files
committed
[course] Remove reference to Infallible
No longer needed now that we've removed CourseSetBuilder<GeoPoint>, which used `TryFrom<GeoPoint> for GeoPoint`
1 parent 6f9862c commit b9ac0a9

4 files changed

Lines changed: 18 additions & 24 deletions

File tree

integration-stub/src/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use std::path::PathBuf;
55
use anyhow::Result;
66
use chrono::{DateTime, Utc};
77
use clap::{Parser, Subcommand};
8-
use coursepointer::CourseSetOptions;
9-
use coursepointer::internal::{CourseFile, CourseSetBuilder, DEG, GeoPoint};
8+
use coursepointer::course::{CourseSetBuilder, CourseSetOptions};
9+
use coursepointer::internal::{CourseFile, DEG, GeoPoint};
1010
use dimensioned::f64prefixes::KILO;
1111
use dimensioned::si::M;
1212
use dimensioned::si::f64consts::HR;
@@ -67,10 +67,10 @@ fn write_fit(spec: PathBuf, out: PathBuf) -> Result<()> {
6767

6868
let mut fit_file = BufWriter::new(File::create(&out)?);
6969
let mut builder = CourseSetBuilder::new(CourseSetOptions::default());
70-
builder.add_course();
71-
builder.last_course_mut()?.with_name(spec.name);
70+
builder.add_route();
71+
builder.last_route_mut()?.with_name(spec.name);
7272
for point in &spec.records {
73-
builder.last_course_mut()?.with_route_point(GeoPoint::new(
73+
builder.last_route_mut()?.with_route_point(GeoPoint::new(
7474
point.lat * DEG,
7575
point.lon * DEG,
7676
None,

src/algorithm.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use std::ops::{Mul, Sub};
1010
use dimensioned::si::{M, Meter};
1111
use thiserror::Error;
1212

13-
use crate::course::CourseError;
1413
use crate::geographic::{
1514
GeographicError, geodesic_direct, geodesic_inverse, gnomonic_forward, gnomonic_reverse,
1615
};
@@ -237,15 +236,13 @@ pub trait FromGeoPoints<'a, P>
237236
where
238237
Self: Sized,
239238
P: HasGeoPoint + TryFrom<GeoPoint>,
240-
CourseError: From<<P as TryFrom<GeoPoint>>::Error>,
241239
{
242240
fn from_geo_points(start: &'a P, end: &'a P) -> std::result::Result<Self, GeographicError>;
243241
}
244242

245243
impl<'a, P> FromGeoPoints<'a, P> for GeoSegment<'a, P>
246244
where
247245
P: HasGeoPoint + TryFrom<GeoPoint>,
248-
CourseError: From<<P as TryFrom<GeoPoint>>::Error>,
249246
{
250247
fn from_geo_points(point1: &'a P, point2: &'a P) -> std::result::Result<Self, GeographicError> {
251248
let inverse = geodesic_inverse(point1.geo(), point2.geo())?;

src/course.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
//! calculations.
5454
5555
use std::cmp::Ordering;
56-
use std::convert::Infallible;
5756

5857
use dimensioned::si::{M, Meter};
5958
#[cfg(feature = "rayon")]
@@ -79,8 +78,6 @@ pub enum CourseError {
7978
Algorithm(#[from] AlgorithmError),
8079
#[error("Distance is NaN")]
8180
NaNDistance,
82-
#[error("Infallible")]
83-
Infallible(#[from] Infallible),
8481
}
8582

8683
type Result<T> = std::result::Result<T, CourseError>;
@@ -163,7 +160,7 @@ pub struct CourseSet {
163160
/// Builds routes and waypoints into courses with associated course points
164161
pub struct CourseSetBuilder {
165162
options: CourseSetOptions,
166-
course_builders: Vec<RouteBuilder>,
163+
route_builders: Vec<RouteBuilder>,
167164
waypoints: Vec<Waypoint>,
168165
}
169166

@@ -172,19 +169,19 @@ impl CourseSetBuilder {
172169
pub fn new(options: CourseSetOptions) -> Self {
173170
Self {
174171
options,
175-
course_builders: Vec::new(),
172+
route_builders: Vec::new(),
176173
waypoints: Vec::new(),
177174
}
178175
}
179176

180177
/// Adds a new [`RouteBuilder`] to this set builder.
181178
pub fn add_route(&mut self) -> &mut RouteBuilder {
182-
self.course_builders.push(RouteBuilder::new());
183-
self.last_course_mut().unwrap()
179+
self.route_builders.push(RouteBuilder::new());
180+
self.last_route_mut().unwrap()
184181
}
185182

186-
pub fn last_course_mut(&mut self) -> Result<&mut RouteBuilder> {
187-
match self.course_builders.last_mut() {
183+
pub fn last_route_mut(&mut self) -> Result<&mut RouteBuilder> {
184+
match self.route_builders.last_mut() {
188185
Some(course) => Ok(course),
189186
None => Err(CourseError::MissingCourse),
190187
}
@@ -195,16 +192,16 @@ impl CourseSetBuilder {
195192
self
196193
}
197194

198-
pub fn num_courses(&self) -> usize {
199-
self.course_builders.len()
195+
pub fn num_routes(&self) -> usize {
196+
self.route_builders.len()
200197
}
201198

202199
/// Build the courses.
203200
///
204201
/// The geodesic calculations happen in here.
205202
pub fn build(mut self) -> Result<CourseSet> {
206203
let mut courses = Vec::new();
207-
let mut course_builders = std::mem::take(&mut self.course_builders);
204+
let mut course_builders = std::mem::take(&mut self.route_builders);
208205
let mut segmented_courses = course_builders
209206
.iter_mut()
210207
.map(|c| c.segment())

src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,11 @@ pub fn convert_gpx<R: BufRead, W: Write>(
142142
}
143143

144144
GpxItem::TrackOrRouteName(name) => {
145-
builder.last_course_mut()?.with_name(name);
145+
builder.last_route_mut()?.with_name(name);
146146
}
147147

148148
GpxItem::TrackOrRoutePoint(p) => {
149-
builder.last_course_mut()?.with_route_point(p);
149+
builder.last_route_mut()?.with_route_point(p);
150150
}
151151

152152
GpxItem::Waypoint(wpt) => {
@@ -170,8 +170,8 @@ pub fn convert_gpx<R: BufRead, W: Write>(
170170
);
171171
}
172172

173-
if builder.num_courses() != 1usize {
174-
return Err(CoursePointerError::CourseCount(builder.num_courses()));
173+
if builder.num_routes() != 1usize {
174+
return Err(CoursePointerError::CourseCount(builder.num_routes()));
175175
}
176176
let mut course_set = builder.build()?;
177177
let course = course_set.courses.remove(0);

0 commit comments

Comments
 (0)