brk: first commit

This commit is contained in:
nym21
2025-02-23 01:25:15 +01:00
parent 8c3f519016
commit 19cf34f9d4
266 changed files with 225 additions and 1268 deletions

View File

@@ -0,0 +1,50 @@
use std::path::Path;
use allocative::Allocative;
use chrono::Datelike;
use super::{Date, MapChunkId};
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Allocative)]
pub struct DateMapChunkId(i32);
impl DateMapChunkId {
pub fn new(date: &Date) -> Self {
Self(date.year())
}
}
impl MapChunkId for DateMapChunkId {
fn to_string(&self) -> String {
self.0.to_string()
}
fn from_path(path: &Path) -> color_eyre::Result<Self> {
Ok(Self(
path.file_name()
.unwrap()
.to_str()
.unwrap()
.split(".")
.next()
.unwrap()
.parse::<i32>()?,
))
}
fn to_usize(self) -> usize {
self.0 as usize
}
fn from_usize(id: usize) -> Self {
Self(id as i32)
}
fn next(&self) -> Option<Self> {
self.0.checked_add(1).map(Self)
}
fn previous(&self) -> Option<Self> {
self.0.checked_sub(1).map(Self)
}
}