1 #[cfg(feature = "Win32_Foundation")]
2 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcClose ( object : isize ) -> super::super::Foundation:: BOOL );
3 #[cfg(feature = "Win32_Foundation")]
4 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcDeleteSubscription ( subscriptionname : :: windows_sys::core::PCWSTR , flags : u32 ) -> super::super::Foundation:: BOOL );
5 #[cfg(feature = "Win32_Foundation")]
6 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcEnumNextSubscription ( subscriptionenum : isize , subscriptionnamebuffersize : u32 , subscriptionnamebuffer : :: windows_sys::core::PWSTR , subscriptionnamebufferused : *mut u32 ) -> super::super::Foundation:: BOOL );
7 #[cfg(feature = "Win32_Foundation")]
8 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcGetObjectArrayProperty ( objectarray : isize , propertyid : EC_SUBSCRIPTION_PROPERTY_ID , arrayindex : u32 , flags : u32 , propertyvaluebuffersize : u32 , propertyvaluebuffer : *mut EC_VARIANT , propertyvaluebufferused : *mut u32 ) -> super::super::Foundation:: BOOL );
9 #[cfg(feature = "Win32_Foundation")]
10 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcGetObjectArraySize ( objectarray : isize , objectarraysize : *mut u32 ) -> super::super::Foundation:: BOOL );
11 #[cfg(feature = "Win32_Foundation")]
12 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcGetSubscriptionProperty ( subscription : isize , propertyid : EC_SUBSCRIPTION_PROPERTY_ID , flags : u32 , propertyvaluebuffersize : u32 , propertyvaluebuffer : *mut EC_VARIANT , propertyvaluebufferused : *mut u32 ) -> super::super::Foundation:: BOOL );
13 #[cfg(feature = "Win32_Foundation")]
14 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcGetSubscriptionRunTimeStatus ( subscriptionname : :: windows_sys::core::PCWSTR , statusinfoid : EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID , eventsourcename : :: windows_sys::core::PCWSTR , flags : u32 , statusvaluebuffersize : u32 , statusvaluebuffer : *mut EC_VARIANT , statusvaluebufferused : *mut u32 ) -> super::super::Foundation:: BOOL );
15 #[cfg(feature = "Win32_Foundation")]
16 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcInsertObjectArrayElement ( objectarray : isize , arrayindex : u32 ) -> super::super::Foundation:: BOOL );
17 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"] fn EcOpenSubscription ( subscriptionname : :: windows_sys::core::PCWSTR , accessmask : u32 , flags : u32 ) -> isize );
18 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"] fn EcOpenSubscriptionEnum ( flags : u32 ) -> isize );
19 #[cfg(feature = "Win32_Foundation")]
20 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcRemoveObjectArrayElement ( objectarray : isize , arrayindex : u32 ) -> super::super::Foundation:: BOOL );
21 #[cfg(feature = "Win32_Foundation")]
22 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcRetrySubscription ( subscriptionname : :: windows_sys::core::PCWSTR , eventsourcename : :: windows_sys::core::PCWSTR , flags : u32 ) -> super::super::Foundation:: BOOL );
23 #[cfg(feature = "Win32_Foundation")]
24 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcSaveSubscription ( subscription : isize , flags : u32 ) -> super::super::Foundation:: BOOL );
25 #[cfg(feature = "Win32_Foundation")]
26 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcSetObjectArrayProperty ( objectarray : isize , propertyid : EC_SUBSCRIPTION_PROPERTY_ID , arrayindex : u32 , flags : u32 , propertyvalue : *mut EC_VARIANT ) -> super::super::Foundation:: BOOL );
27 #[cfg(feature = "Win32_Foundation")]
28 ::windows_sys
::core
::link
! ( "wecapi.dll""system" #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] fn EcSetSubscriptionProperty ( subscription : isize , propertyid : EC_SUBSCRIPTION_PROPERTY_ID , flags : u32 , propertyvalue : *mut EC_VARIANT ) -> super::super::Foundation:: BOOL );
29 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
30 pub const EC_CREATE_NEW
: u32 = 1u32;
31 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
32 pub const EC_OPEN_ALWAYS
: u32 = 0u32;
33 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
34 pub const EC_OPEN_EXISTING
: u32 = 2u32;
35 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
36 pub const EC_READ_ACCESS
: u32 = 1u32;
37 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
38 pub const EC_VARIANT_TYPE_ARRAY
: u32 = 128u32;
39 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
40 pub const EC_VARIANT_TYPE_MASK
: u32 = 127u32;
41 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
42 pub const EC_WRITE_ACCESS
: u32 = 2u32;
43 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
44 pub type EC_SUBSCRIPTION_CONFIGURATION_MODE
= i32;
45 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
46 pub const EcConfigurationModeNormal
: EC_SUBSCRIPTION_CONFIGURATION_MODE
= 0i32;
47 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
48 pub const EcConfigurationModeCustom
: EC_SUBSCRIPTION_CONFIGURATION_MODE
= 1i32;
49 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
50 pub const EcConfigurationModeMinLatency
: EC_SUBSCRIPTION_CONFIGURATION_MODE
= 2i32;
51 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
52 pub const EcConfigurationModeMinBandwidth
: EC_SUBSCRIPTION_CONFIGURATION_MODE
= 3i32;
53 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
54 pub type EC_SUBSCRIPTION_CONTENT_FORMAT
= i32;
55 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
56 pub const EcContentFormatEvents
: EC_SUBSCRIPTION_CONTENT_FORMAT
= 1i32;
57 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
58 pub const EcContentFormatRenderedText
: EC_SUBSCRIPTION_CONTENT_FORMAT
= 2i32;
59 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
60 pub type EC_SUBSCRIPTION_CREDENTIALS_TYPE
= i32;
61 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
62 pub const EcSubscriptionCredDefault
: EC_SUBSCRIPTION_CREDENTIALS_TYPE
= 0i32;
63 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
64 pub const EcSubscriptionCredNegotiate
: EC_SUBSCRIPTION_CREDENTIALS_TYPE
= 1i32;
65 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
66 pub const EcSubscriptionCredDigest
: EC_SUBSCRIPTION_CREDENTIALS_TYPE
= 2i32;
67 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
68 pub const EcSubscriptionCredBasic
: EC_SUBSCRIPTION_CREDENTIALS_TYPE
= 3i32;
69 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
70 pub const EcSubscriptionCredLocalMachine
: EC_SUBSCRIPTION_CREDENTIALS_TYPE
= 4i32;
71 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
72 pub type EC_SUBSCRIPTION_DELIVERY_MODE
= i32;
73 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
74 pub const EcDeliveryModePull
: EC_SUBSCRIPTION_DELIVERY_MODE
= 1i32;
75 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
76 pub const EcDeliveryModePush
: EC_SUBSCRIPTION_DELIVERY_MODE
= 2i32;
77 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
78 pub type EC_SUBSCRIPTION_PROPERTY_ID
= i32;
79 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
80 pub const EcSubscriptionEnabled
: EC_SUBSCRIPTION_PROPERTY_ID
= 0i32;
81 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
82 pub const EcSubscriptionEventSources
: EC_SUBSCRIPTION_PROPERTY_ID
= 1i32;
83 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
84 pub const EcSubscriptionEventSourceAddress
: EC_SUBSCRIPTION_PROPERTY_ID
= 2i32;
85 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
86 pub const EcSubscriptionEventSourceEnabled
: EC_SUBSCRIPTION_PROPERTY_ID
= 3i32;
87 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
88 pub const EcSubscriptionEventSourceUserName
: EC_SUBSCRIPTION_PROPERTY_ID
= 4i32;
89 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
90 pub const EcSubscriptionEventSourcePassword
: EC_SUBSCRIPTION_PROPERTY_ID
= 5i32;
91 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
92 pub const EcSubscriptionDescription
: EC_SUBSCRIPTION_PROPERTY_ID
= 6i32;
93 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
94 pub const EcSubscriptionURI
: EC_SUBSCRIPTION_PROPERTY_ID
= 7i32;
95 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
96 pub const EcSubscriptionConfigurationMode
: EC_SUBSCRIPTION_PROPERTY_ID
= 8i32;
97 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
98 pub const EcSubscriptionExpires
: EC_SUBSCRIPTION_PROPERTY_ID
= 9i32;
99 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
100 pub const EcSubscriptionQuery
: EC_SUBSCRIPTION_PROPERTY_ID
= 10i32;
101 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
102 pub const EcSubscriptionTransportName
: EC_SUBSCRIPTION_PROPERTY_ID
= 11i32;
103 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
104 pub const EcSubscriptionTransportPort
: EC_SUBSCRIPTION_PROPERTY_ID
= 12i32;
105 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
106 pub const EcSubscriptionDeliveryMode
: EC_SUBSCRIPTION_PROPERTY_ID
= 13i32;
107 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
108 pub const EcSubscriptionDeliveryMaxItems
: EC_SUBSCRIPTION_PROPERTY_ID
= 14i32;
109 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
110 pub const EcSubscriptionDeliveryMaxLatencyTime
: EC_SUBSCRIPTION_PROPERTY_ID
= 15i32;
111 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
112 pub const EcSubscriptionHeartbeatInterval
: EC_SUBSCRIPTION_PROPERTY_ID
= 16i32;
113 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
114 pub const EcSubscriptionLocale
: EC_SUBSCRIPTION_PROPERTY_ID
= 17i32;
115 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
116 pub const EcSubscriptionContentFormat
: EC_SUBSCRIPTION_PROPERTY_ID
= 18i32;
117 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
118 pub const EcSubscriptionLogFile
: EC_SUBSCRIPTION_PROPERTY_ID
= 19i32;
119 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
120 pub const EcSubscriptionPublisherName
: EC_SUBSCRIPTION_PROPERTY_ID
= 20i32;
121 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
122 pub const EcSubscriptionCredentialsType
: EC_SUBSCRIPTION_PROPERTY_ID
= 21i32;
123 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
124 pub const EcSubscriptionCommonUserName
: EC_SUBSCRIPTION_PROPERTY_ID
= 22i32;
125 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
126 pub const EcSubscriptionCommonPassword
: EC_SUBSCRIPTION_PROPERTY_ID
= 23i32;
127 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
128 pub const EcSubscriptionHostName
: EC_SUBSCRIPTION_PROPERTY_ID
= 24i32;
129 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
130 pub const EcSubscriptionReadExistingEvents
: EC_SUBSCRIPTION_PROPERTY_ID
= 25i32;
131 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
132 pub const EcSubscriptionDialect
: EC_SUBSCRIPTION_PROPERTY_ID
= 26i32;
133 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
134 pub const EcSubscriptionType
: EC_SUBSCRIPTION_PROPERTY_ID
= 27i32;
135 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
136 pub const EcSubscriptionAllowedIssuerCAs
: EC_SUBSCRIPTION_PROPERTY_ID
= 28i32;
137 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
138 pub const EcSubscriptionAllowedSubjects
: EC_SUBSCRIPTION_PROPERTY_ID
= 29i32;
139 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
140 pub const EcSubscriptionDeniedSubjects
: EC_SUBSCRIPTION_PROPERTY_ID
= 30i32;
141 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
142 pub const EcSubscriptionAllowedSourceDomainComputers
: EC_SUBSCRIPTION_PROPERTY_ID
= 31i32;
143 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
144 pub const EcSubscriptionPropertyIdEND
: EC_SUBSCRIPTION_PROPERTY_ID
= 32i32;
145 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
146 pub type EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS
= i32;
147 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
148 pub const EcRuntimeStatusActiveStatusDisabled
: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS
= 1i32;
149 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
150 pub const EcRuntimeStatusActiveStatusActive
: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS
= 2i32;
151 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
152 pub const EcRuntimeStatusActiveStatusInactive
: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS
= 3i32;
153 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
154 pub const EcRuntimeStatusActiveStatusTrying
: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS
= 4i32;
155 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
156 pub type EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= i32;
157 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
158 pub const EcSubscriptionRunTimeStatusActive
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 0i32;
159 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
160 pub const EcSubscriptionRunTimeStatusLastError
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 1i32;
161 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
162 pub const EcSubscriptionRunTimeStatusLastErrorMessage
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 2i32;
163 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
164 pub const EcSubscriptionRunTimeStatusLastErrorTime
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 3i32;
165 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
166 pub const EcSubscriptionRunTimeStatusNextRetryTime
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 4i32;
167 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
168 pub const EcSubscriptionRunTimeStatusEventSources
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 5i32;
169 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
170 pub const EcSubscriptionRunTimeStatusLastHeartbeatTime
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 6i32;
171 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
172 pub const EcSubscriptionRunTimeStatusInfoIdEND
: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID
= 7i32;
173 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
174 pub type EC_SUBSCRIPTION_TYPE
= i32;
175 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
176 pub const EcSubscriptionTypeSourceInitiated
: EC_SUBSCRIPTION_TYPE
= 0i32;
177 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
178 pub const EcSubscriptionTypeCollectorInitiated
: EC_SUBSCRIPTION_TYPE
= 1i32;
179 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
180 pub type EC_VARIANT_TYPE
= i32;
181 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
182 pub const EcVarTypeNull
: EC_VARIANT_TYPE
= 0i32;
183 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
184 pub const EcVarTypeBoolean
: EC_VARIANT_TYPE
= 1i32;
185 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
186 pub const EcVarTypeUInt32
: EC_VARIANT_TYPE
= 2i32;
187 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
188 pub const EcVarTypeDateTime
: EC_VARIANT_TYPE
= 3i32;
189 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
190 pub const EcVarTypeString
: EC_VARIANT_TYPE
= 4i32;
191 #[doc = "*Required features: `\"Win32_System_EventCollector\"`*"]
192 pub const EcVarObjectArrayPropertyHandle
: EC_VARIANT_TYPE
= 5i32;
194 #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"]
195 #[cfg(feature = "Win32_Foundation")]
196 pub struct EC_VARIANT
{
197 pub Anonymous
: EC_VARIANT_0
,
201 #[cfg(feature = "Win32_Foundation")]
202 impl ::core
::marker
::Copy
for EC_VARIANT {}
203 #[cfg(feature = "Win32_Foundation")]
204 impl ::core
::clone
::Clone
for EC_VARIANT
{
205 fn clone(&self) -> Self {
210 #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"]
211 #[cfg(feature = "Win32_Foundation")]
212 pub union EC_VARIANT_0
{
213 pub BooleanVal
: super::super::Foundation
::BOOL
,
215 pub DateTimeVal
: u64,
216 pub StringVal
: ::windows_sys
::core
::PCWSTR
,
217 pub BinaryVal
: *mut u8,
218 pub BooleanArr
: *mut super::super::Foundation
::BOOL
,
219 pub Int32Arr
: *mut i32,
220 pub StringArr
: *mut ::windows_sys
::core
::PWSTR
,
221 pub PropertyHandleVal
: isize,
223 #[cfg(feature = "Win32_Foundation")]
224 impl ::core
::marker
::Copy
for EC_VARIANT_0 {}
225 #[cfg(feature = "Win32_Foundation")]
226 impl ::core
::clone
::Clone
for EC_VARIANT_0
{
227 fn clone(&self) -> Self {