Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/Command/Hover/Interface/
HoverResponse.rs

1//! Outbound hover response DTO: ordered list of `HoverContent::Enum`
2//! plus an optional `Range::Struct` the hover applies to. Range is
3//! omitted in serialised form when absent.
4
5use serde::{Deserialize, Serialize};
6
7use crate::Command::Hover::Interface::{HoverContent, Range};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Struct {
11	pub contents:Vec<HoverContent::Enum>,
12
13	#[serde(skip_serializing_if = "Option::is_none")]
14	pub range:Option<Range::Struct>,
15}
16
17impl Default for Struct {
18	fn default() -> Self { Self { contents:Vec::new(), range:None } }
19}
20
21impl Struct {
22	pub fn new(contents:Vec<HoverContent::Enum>) -> Self { Self { contents, range:None } }
23
24	pub fn WithRange(contents:Vec<HoverContent::Enum>, range:Range::Struct) -> Self {
25		Self { contents, range:Some(range) }
26	}
27}