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 uri:&str,
11 position:&serde_json::Value,
12) -> Result<(), String> {
13 if uri.is_empty() {
14 return Err(format!("Empty URI for {} request", request_type));
15 }
16
17 // Validate position format
18 if let Some(line) = position.get("line") {
19 if !line.is_u64() {
20 return Err(format!("Invalid line position for {} request", request_type));
21 }
22 } else {
23 return Err(format!("Missing line position for {} request", request_type));
24 }
25
26 if let Some(character) = position.get("character") {
27 if !character.is_u64() {
28 return Err(format!("Invalid character position for {} request", request_type));
29 }
30 } else {
31 return Err(format!("Missing character position for {} request", request_type));
32 }
33
34 Ok(())
35}