Add Point3::from_line()
This commit is contained in:
@@ -16,6 +16,11 @@ impl Point2 {
|
||||
pub struct Point3(pub u64, pub u64, pub u64);
|
||||
|
||||
impl Point3 {
|
||||
pub fn from_line(line: &str, separator: char) -> Self {
|
||||
let p: Vec<u64> = line.split(separator).map(|s| s.parse().unwrap()).collect();
|
||||
Self(p[0], p[1], p[2])
|
||||
}
|
||||
|
||||
pub fn distance_sqr(&self, other: &Self) -> u64 {
|
||||
self.0.abs_diff(other.0).pow(2)
|
||||
+ self.1.abs_diff(other.1).pow(2)
|
||||
|
||||
@@ -21,8 +21,7 @@ impl Playground {
|
||||
fn junction_boxes<R: BufRead>(reader: R) -> Vec<Point3> {
|
||||
let mut junction_boxes = Vec::new();
|
||||
for line in reader.lines().map_while(Result::ok) {
|
||||
let j: Vec<u64> = line.split(Self::POINT_SPLIT_CHAR).map(|s| s.parse().unwrap()).collect();
|
||||
junction_boxes.push(Point3(j[0], j[1], j[2]));
|
||||
junction_boxes.push(Point3::from_line(&line, Self::POINT_SPLIT_CHAR));
|
||||
}
|
||||
junction_boxes
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user