Skip to main content

Mountain/Command/LanguageFeature/
Validation.rs

1//! # LanguageFeature - Validation
2//!
3//! Validation helper for language feature requests
4
5use serde_json;
6
7/// Validates language feature request parameters.
8pub(super) fn validate_language_feature_request(
9	request_type:&str,
10
11	uri:&str,
12
13	position:&serde_json::Value,
14) -> Result<(), String> {
15	if uri.is_empty() {
16		return Err(format!("Empty URI for {} request", request_type));
17	}
18
19	// Validate position format
20	if let Some(line) = position.get("line") {
21		if !line.is_u64() {
22			return Err(format!("Invalid line position for {} request", request_type));
23		}
24	} else {
25		return Err(format!("Missing line position for {} request", request_type));
26	}
27
28	if let Some(character) = position.get("character") {
29		if !character.is_u64() {
30			return Err(format!("Invalid character position for {} request", request_type));
31		}
32	} else {
33		return Err(format!("Missing character position for {} request", request_type));
34	}
35
36	Ok(())
37}