git/testutil/
build_reference.rs1use crate::{Reference, ReferenceKind};
2
3#[derive(Debug)]
5pub struct ReferenceBuilder {
6 reference: Reference,
7}
8
9impl ReferenceBuilder {
10 #[inline]
13 #[must_use]
14 pub fn new(hash: &str) -> Self {
15 Self {
16 reference: Reference {
17 hash: String::from(hash),
18 name: String::from("refs/heads/main"),
19 shorthand: String::from("main"),
20 kind: ReferenceKind::Branch,
21 },
22 }
23 }
24
25 #[inline]
27 pub fn hash(&mut self, hash: &str) -> &mut Self {
28 self.reference.hash = String::from(hash);
29 self
30 }
31
32 #[inline]
34 pub fn name(&mut self, name: &str) -> &mut Self {
35 self.reference.name = String::from(name);
36 self
37 }
38
39 #[inline]
41 pub fn shorthand(&mut self, shorthand: &str) -> &mut Self {
42 self.reference.shorthand = String::from(shorthand);
43 self
44 }
45
46 #[inline]
48 pub fn kind(&mut self, kind: ReferenceKind) -> &mut Self {
49 self.reference.kind = kind;
50 self
51 }
52
53 #[inline]
55 #[must_use]
56 #[allow(clippy::missing_const_for_fn)]
57 pub fn build(self) -> Reference {
58 self.reference
59 }
60}