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}