1个不稳定版本
0.0.1 | 2022年12月27日 |
---|
在#git-directory中排名18
每月下载量55
用于 7 crates
23KB
237 行
特质
该项目仅提供特质。其背后的想法是,完整的实现可以由几个其他实现的片段组成,仍然可以正常工作,只需重写其中的部分。
实现所有特质的可执行的项目管理器可以执行六项操作
- 从URL安装
- 了解已安装的内容
- 更新已安装的项目
- 编辑项目设置
- 回退到上一个版本
- 卸载项目
它将实现分为三个部分
包管理器
它由三个特质和一个错误枚举组成
第一个特质是PMOperations
。它处理“低级”事物,这样其他特质就有非常容易的实现
PMProgramatic
和PMInteractive
定义了以不同方式完成六项任务的方法。PMProgramatic
面向成为程序员与项目管理器交互的API,而PMInteractive
面向用于CLI应用程序或其他与最终用户交互的方式。
agpm_pm::ProjectManager
是一个实现所有三个特质的结构体
目录
它是PMDirs
特质
目录是存储应写入的地方以及项目管理器应放置项目的地方。
项目管理器使用三个不同的目录
- src目录,项目在其中构建
- git目录,项目在其中下载和更新(但从不构建)
- 旧目录,项目在其中存储,以防需要回退
实现此特质的结构是agpm_dirs::PMDirsImpl
存储
存储是项目配置的存储方式。它包含两个特质ProjectT
和ProjectStore
第一个是一个特质,允许项目管理器特质与单个项目配置和设置交互。
第二个特质允许项目管理器存储新项目并删除它们。
实现这些特性的类型包括 agpm_project::Project
和 agpm_store::ProjectStore
依赖项
~9MB
~237K SLoC