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}