pub struct TraceRule {
pub trace_level: Option<i32>,
pub match_all_packages: Vec<String>,
pub match_any_packages: Vec<String>,
pub match_secure: Option<bool>,
pub match_ime_connection_active: Option<bool>,
}
Expand description
A rule that specifies the TraceLevel for an event based on matching conditions. All matchers in the rule are optional. To trigger this rule, an event must match all of its specified matchers (i.e. the matchers function like a series of conditions connected by a logical ‘AND’ operator). A rule with no specified matchers will match all events. Next ID: 6
Fields§
§trace_level: Option<i32>
The trace level to be used for events that trigger this rule. If unspecified, TRACE_LEVEL_NONE will be used by default.
match_all_packages: Vec<String>
Package matchers
Respectively matches if all or any of the target apps for this event are contained in the specified list of package names.
Intended usage:
- Use match_all_packages to selectively allow tracing for the listed packages.
- Use match_any_packages to selectively deny tracing for certain packages.
WARNING: Great care must be taken when designing rules for field tracing! This is because each event is almost always sent to more than one app. For example, when allowing tracing for a package that has a spy window over the display (e.g. SystemUI) using match_any_packages, essentially all input will be recorded on that display. This is because the events will be sent to the spy as well as the foreground app, and regardless of what the foreground app is, the event will end up being traced. Alternatively, when attempting to block tracing for specific packages using match_all_packages, no events will likely be blocked. This is because the event will also be sent to other apps (such as, but not limited to, ones with spy windows), so the matcher will not match unless all other targets are also listed under the match_all_packages list.
match_any_packages: Vec<String>
§match_secure: Option<bool>
Matches if the event is secure, which means that at least one of the targets of this event is using the window flag FLAG_SECURE.
match_ime_connection_active: Option<bool>
Matches if there was an active IME connection while this event was being processed.
Implementations§
Source§impl TraceRule
impl TraceRule
Sourcepub fn trace_level(&self) -> TraceLevel
pub fn trace_level(&self) -> TraceLevel
Returns the enum value of trace_level
, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_trace_level(&mut self, value: TraceLevel)
pub fn set_trace_level(&mut self, value: TraceLevel)
Sets trace_level
to the provided enum value.
Sourcepub fn match_secure(&self) -> bool
pub fn match_secure(&self) -> bool
Returns the value of match_secure
, or the default value if match_secure
is unset.
Sourcepub fn match_ime_connection_active(&self) -> bool
pub fn match_ime_connection_active(&self) -> bool
Returns the value of match_ime_connection_active
, or the default value if match_ime_connection_active
is unset.
Trait Implementations§
Source§impl Message for TraceRule
impl Message for TraceRule
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
.