changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/lib/obj/src/config/repo.rs

changeset 698: 96958d3eb5b0
parent: c7165d93a9eb
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
17
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! cfg::config::repo
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
2
 //!
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
3
 //! Repo configuration primitives
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
4
 use serde::{Deserialize, Serialize};
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
5
 use std::path::PathBuf;
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
6
 #[cfg(feature = "git")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
7
 pub mod git;
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
8
 #[cfg(feature = "hg")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
9
 pub mod hg;
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
10
 /// Generic repo configuration type
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
11
 ///
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
12
 /// Wraps Mercurial and Git repos
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
13
 #[derive(Serialize, Deserialize, Debug, Hash, PartialEq)]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
14
 pub struct RepoConfig {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
15
   pub vcs: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
16
   pub origin: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
17
   pub path: PathBuf,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
18
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
19
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
20
 impl RepoConfig {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
21
   /// Create a new RepoConfig
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
22
   pub fn new() -> Self {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
23
     RepoConfig::default()
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
24
   }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
25
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
26
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
27
 impl Default for RepoConfig {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
28
   fn default() -> Self {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
29
     RepoConfig {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
30
       vcs: "hg".to_string(),
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
31
       origin: "".to_string(),
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
32
       path: PathBuf::from("."),
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
33
     }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
34
   }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
35
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
36
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
37
 /// Subrepo type
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
38
 ///
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
39
 /// Note that Mercurial subrepos are a 'feature of last resort'
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
40
 /// according to official docs. They are needed in very niche
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
41
 /// scenarios and shouldn't be used most of the time.
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
42
 #[derive(Default)]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
43
 pub struct SubRepo {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
44
   pub vcs: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
45
   pub origin: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
46
   pub path: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
47
 }