1个不稳定发布版

使用旧的Rust 2015

0.3.0 2017年8月25日

#66 in #imag

LGPL-2.1

200KB
3.5K SLoC

libimagtimetrack

用于在imag存储中跟踪时间事件的库。

存储格式

事件以存储ID存储,如下所示

/timetrack/<insert-date-year>/<insert-date-month>/<insert-date-day>/<insert-date-time>-<tag>.ext

时间跟踪包含

  • 一条注释(可选,自由文本)
  • 开始日期
  • 结束日期
  • 一个标签

默认情况下,并且可以扩展更多标题字段,如所愿。

时间跟踪“工作”条目的头部看起来像这样

[event]
tag = "work"
start = "2017-01-02T03:04:05"
end = "2017-01-02T06:07:08"

正常标签(如在libimagentrytag中)明确地不用于标记,因此用户可以将正常标签也用于这些条目。

tag字段是字符串类型,因为一个标签创建一个条目。这样,可以跟踪重叠的标签,如下所示

imag timetrack start foo
imag timetrack start bar
imag timetrack stop foo
imag timetrack start baz
imag timetrack stop bar
imag timetrack stop baz

end字段当然仅在事件已结束时设置。

库功能

该库使用libimagentrydatetime::datepath::DatePathBuilder构建StoreId对象。

该库提供两个核心特性

  • TimeTrackStore,它扩展了Store对象,以创建用于时间跟踪的特定设置的FileLockEntry对象,以及
  • TimeTracking,它扩展了Entry,并提供了查询用于时间跟踪功能的条目元数据的辅助函数

该库不提供实现imag-timetrack等的功能,因为核心功能已经给出,命令行应用程序可以在几行代码中实现缺失的部分。

可能在未来某个时间点提供聚合功能。

依赖关系

~14MB
~306K SLoC