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
118
119
120
121
122
123
124
125
//! Distinct original Vue 1 descriptor custody, without modern admission.
use ;
use crate;
use crateComponentParse;
use ;
pub use Vue1TemplateView;
pub
/// One original splitter and, only for a supported envelope, one Component.
/// Body diagnostics and TextView admission stay distinct from this envelope.
/// Fields are private; captures and caller syntax cannot construct this owner.
///
/// ```compile_fail
/// use vize_l1::container::vue::Vue1DescriptorObservation;
/// fn clone(owner: Vue1DescriptorObservation<'_>) { let _ = owner.clone(); }
/// ```
/// Every constructor field is supplied with its real type; privacy rejects it:
/// ```compile_fail
/// use vize_l0::{Allocator, SourceRoot, Vec, config::{VueDialect, VueVersion}};
/// use vize_l1::{SurfaceParseOptions, container::{ContainerFormat, Vue,
/// vue::{DescriptorOptions, Vue1DescriptorObservation}}};
/// let arena = Allocator::default();
/// let source = "<template>{{ value }}</template>";
/// let _ = Vue1DescriptorObservation {
/// container: Vue.split(&arena, source), root: SourceRoot::new(source).ok(),
/// options: DescriptorOptions { version: VueVersion::V1,
/// dialect: VueDialect::Vue, template: SurfaceParseOptions::default() },
/// issues: Vec::new_in(&arena), selection: None, component: None,
/// };
/// ```
/// A capture is not an original historical owner:
/// ```compile_fail
/// use vize_l0::Allocator;
/// use vize_l1::container::{ContainerFormat, Vue, vue::Vue1DescriptorObservation};
/// let arena = Allocator::default();
/// let owner: Vue1DescriptorObservation<'_> = Vue.split(&arena, "<template/>").into();
/// ```
/// Neither the source nor allocator can be released while this owner lives:
/// ```compile_fail
/// use vize_l0::{Allocator, String, config::{VueDialect, VueVersion}};
/// use vize_l1::{SurfaceParseOptions, container::{Vue, vue::DescriptorOptions}};
/// let arena = Allocator::default();
/// let owner = {
/// let source = String::from("<template>{{ value }}</template>");
/// Vue.observe_vue1_descriptor(&arena, &source, DescriptorOptions {
/// version: VueVersion::V1, dialect: VueDialect::Vue,
/// template: SurfaceParseOptions::default(),
/// })
/// };
/// let _ = owner.selected();
/// ```
/// ```compile_fail
/// use vize_l0::{Allocator, config::{VueDialect, VueVersion}};
/// use vize_l1::{SurfaceParseOptions, container::{Vue, vue::DescriptorOptions}};
/// let owner = {
/// let arena = Allocator::default();
/// Vue.observe_vue1_descriptor(&arena, "<template/>" , DescriptorOptions {
/// version: VueVersion::V1, dialect: VueDialect::Vue,
/// template: SurfaceParseOptions::default(),
/// })
/// };
/// let _ = owner.container();
/// ```
/// Original policy and splitter evidence for an unsupported envelope.