Common/SourceControlManagement/DTO/
SourceControlCreateDTO.rs

1//! # SourceControlCreateDTO
2//!
3//! Defines the DTO for creating a new Source Control provider.
4
5use serde::{Deserialize, Serialize};
6use url::Url;
7
8use crate::Utility::Serialization::URLSerializationHelper;
9
10/// A serializable struct sent from the extension host (`Cocoon`) to the main
11/// host (`Mountain`) when an extension calls `vscode.scm.createSourceControl`.
12#[derive(Serialize, Deserialize, Debug, Clone)]
13#[serde(rename_all = "PascalCase")]
14pub struct SourceControlCreateDTO {
15	/// The unique identifier for this source control provider.
16	pub ID:String,
17
18	/// The human-readable label for this provider (e.g., "Git").
19	pub Label:String,
20
21	/// The root URI of the repository this provider is managing.
22	#[serde(with = "URLSerializationHelper")]
23	pub RootUri:Url,
24}