1个不稳定版本

0.0.1 2022年12月27日

#git-directory中排名18

Download history 16/week @ 2024-03-13 28/week @ 2024-03-20 39/week @ 2024-03-27 29/week @ 2024-04-03 15/week @ 2024-04-10 12/week @ 2024-04-17 21/week @ 2024-04-24 19/week @ 2024-05-01 15/week @ 2024-05-08 18/week @ 2024-05-15 17/week @ 2024-05-22 15/week @ 2024-05-29 18/week @ 2024-06-05 13/week @ 2024-06-12 10/week @ 2024-06-19 13/week @ 2024-06-26

每月下载量55
用于 7 crates

无许可 OR CC0-1.0 OR MIT

23KB
237

特质

该项目仅提供特质。其背后的想法是,完整的实现可以由几个其他实现的片段组成,仍然可以正常工作,只需重写其中的部分。

实现所有特质的可执行的项目管理器可以执行六项操作

  1. 从URL安装
  2. 了解已安装的内容
  3. 更新已安装的项目
  4. 编辑项目设置
  5. 回退到上一个版本
  6. 卸载项目

它将实现分为三个部分

包管理器

它由三个特质和一个错误枚举组成

第一个特质是PMOperations。它处理“低级”事物,这样其他特质就有非常容易的实现

PMProgramaticPMInteractive定义了以不同方式完成六项任务的方法。PMProgramatic面向成为程序员与项目管理器交互的API,而PMInteractive面向用于CLI应用程序或其他与最终用户交互的方式。

agpm_pm::ProjectManager是一个实现所有三个特质的结构体

目录

它是PMDirs特质

目录是存储应写入的地方以及项目管理器应放置项目的地方。

项目管理器使用三个不同的目录

  • src目录,项目在其中构建
  • git目录,项目在其中下载和更新(但从不构建)
  • 旧目录,项目在其中存储,以防需要回退

实现此特质的结构是agpm_dirs::PMDirsImpl

存储

存储是项目配置的存储方式。它包含两个特质ProjectTProjectStore

第一个是一个特质,允许项目管理器特质与单个项目配置和设置交互。

第二个特质允许项目管理器存储新项目并删除它们。

实现这些特性的类型包括 agpm_project::Projectagpm_store::ProjectStore

依赖项

~9MB
~237K SLoC