diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-09-25 17:22:05 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-25 17:22:05 +0800 |
| commit | 3497a285c430d0390bfa074c6f9dab5c732b59a1 (patch) | |
| tree | 243626035d251cf5d19deee9845ebe6af2a6582a /crates/vcs/src/data/local/config.rs | |
| parent | 647cc441eece20218d7387f37d94042e88042057 (diff) | |
| parent | 06b2e2b384da34e30688d1a217859c5cf68ca3bd (diff) | |
Merge pull request #6 from JustEnoughVCS/jvcs_dev
Jvcs dev
Diffstat (limited to 'crates/vcs/src/data/local/config.rs')
| -rw-r--r-- | crates/vcs/src/data/local/config.rs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/crates/vcs/src/data/local/config.rs b/crates/vcs/src/data/local/config.rs new file mode 100644 index 0000000..e024569 --- /dev/null +++ b/crates/vcs/src/data/local/config.rs @@ -0,0 +1,53 @@ +use cfg_file::ConfigFile; +use serde::{Deserialize, Serialize}; +use std::net::SocketAddr; + +use crate::constants::CLIENT_FILE_WORKSPACE; +use crate::constants::PORT; +use crate::data::vault::MemberId; + +#[derive(Serialize, Deserialize, ConfigFile)] +#[cfg_file(path = CLIENT_FILE_WORKSPACE)] +pub struct LocalConfig { + /// The upstream address, representing the upstream address of the local workspace, + /// to facilitate timely retrieval of new updates from the upstream source. + upstream_addr: SocketAddr, + + /// The member ID used by the current local workspace. + /// This ID will be used to verify access permissions when connecting to the upstream server. + using_account: MemberId, +} + +impl Default for LocalConfig { + fn default() -> Self { + Self { + upstream_addr: SocketAddr::V4(std::net::SocketAddrV4::new( + std::net::Ipv4Addr::new(127, 0, 0, 1), + PORT, + )), + using_account: "unknown".to_string(), + } + } +} + +impl LocalConfig { + /// Set the vault address. + pub fn set_vault_addr(&mut self, addr: SocketAddr) { + self.upstream_addr = addr; + } + + /// Get the vault address. + pub fn vault_addr(&self) -> SocketAddr { + self.upstream_addr + } + + /// Set the currently used account + pub fn set_current_account(&mut self, account: MemberId) { + self.using_account = account; + } + + /// Get the currently used account + pub fn current_account(&self) -> MemberId { + self.using_account.clone() + } +} |
