changeset_operations/traits/
changelog_writer.rs1use std::path::{Path, PathBuf};
2
3use changeset_changelog::{RepositoryInfo, VersionRelease};
4
5use crate::Result;
6
7#[derive(Debug, Clone)]
8pub struct ChangelogWriteResult {
9 pub path: PathBuf,
10 pub created: bool,
11}
12
13pub trait ChangelogWriter: Send + Sync {
14 fn write_release(
18 &self,
19 changelog_path: &Path,
20 release: &VersionRelease,
21 repo_info: Option<&RepositoryInfo>,
22 previous_version: Option<&str>,
23 ) -> Result<ChangelogWriteResult>;
24
25 fn changelog_exists(&self, path: &Path) -> bool;
26
27 fn restore_changelog(&self, path: &Path, content: &str) -> Result<()>;
31
32 fn delete_changelog(&self, path: &Path) -> Result<()>;
36}