1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Owned constraint validators for generic constraints and type compatibility validation.
//!
//! This module provides validators that ensure constraint satisfaction and type compatibility
//! within fully resolved .NET metadata according to ECMA-335 specifications. These validators
//! operate on resolved type structures to validate generic constraints, inheritance requirements,
//! and interface implementation obligations.
//!
//! # Architecture
//!
//! The constraint validation system is organized into specialized validators:
//!
//! - **Type Constraints** - Generic parameter constraint satisfaction and type compatibility
//!
//! Each validator focuses on specific constraint validation aspects while maintaining
//! integration with the broader validation framework through shared interfaces and context.
//!
//! # Key Components
//!
//! - [`crate::metadata::validation::validators::owned::constraints::types::OwnedTypeConstraintValidator`] - Generic type constraint validation
//!
//! # Usage
//!
//! ```rust,ignore
//! use dotscope::metadata::validation::validators::owned::constraints::types::OwnedTypeConstraintValidator;
//! use dotscope::metadata::validation::OwnedValidator;
//!
//! # fn get_context() -> dotscope::metadata::validation::context::OwnedValidationContext<'static> { unimplemented!() }
//! let context = get_context();
//! let validator = OwnedTypeConstraintValidator::new();
//!
//! if validator.should_run(&context) {
//! validator.validate_owned(&context)?;
//! }
//! # Ok::<(), dotscope::Error>(())
//! ```
//!
//! # Integration
//!
//! This module integrates with:
//! - Owned validation stage - Parent module for owned validation
//! - [`crate::metadata::validation::engine::ValidationEngine`] - Orchestrates validator execution
//! - [`crate::metadata::validation::traits::OwnedValidator`] - Common validation interface
//! - [`crate::metadata::cilobject::CilObject`] - Source of resolved metadata structures
pub use OwnedTypeConstraintValidator;