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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//! # `NestedClass` Owned Implementation
//!
//! This module provides the owned variant of `NestedClass` table entries with resolved
//! references and owned data structures for efficient runtime access.
use crate::;
/// Owned representation of a `NestedClass` table entry with resolved references.
///
/// This structure represents the processed entry from the `NestedClass` metadata table,
/// which defines the hierarchical relationship between nested types and their enclosing types.
/// Unlike [`NestedClassRaw`](crate::metadata::tables::NestedClassRaw), this version contains resolved references
/// to actual type objects for efficient runtime access.
///
/// ## Purpose
///
/// The `NestedClass` table entry establishes type containment relationships:
/// - Defines which types are nested within other types
/// - Establishes visibility and accessibility scoping rules
/// - Enables proper type resolution within nested contexts
/// - Supports complex type hierarchies and namespace organization
///
/// ## Type Relationships
///
/// `NestedClass` entries create several important relationships:
/// - **Containment**: The nested type is contained within the enclosing type
/// - **Visibility**: Nested types inherit access rules from their enclosing context
/// - **Resolution**: Type names are resolved relative to the enclosing type
/// - **Compilation**: Nested types share compilation context with their container
///
/// ## Validation
///
/// The `NestedClass` entry includes validation to ensure:
/// - No circular nesting relationships exist
/// - Nested and enclosing types are different
/// - Type references are valid and resolvable
/// - Nesting rules comply with .NET type system constraints