Skip to main content

PragmaState

Struct PragmaState 

Source
pub struct PragmaState {
Show 13 fields pub strict_vars: bool, pub strict_subs: bool, pub strict_refs: bool, pub warnings: bool, pub utf8: bool, pub encoding: Option<String>, pub unicode_strings: bool, pub locale: bool, pub locale_scope: Option<String>, pub disabled_warning_categories: Vec<String>, pub signatures_strict: bool, pub features: Vec<&'static str>, pub builtin_imports: Vec<String>,
}
Expand description

Pragma state at a given point in the code

Fields§

§strict_vars: bool

Whether strict vars is enabled

§strict_subs: bool

Whether strict subs is enabled

§strict_refs: bool

Whether strict refs is enabled

§warnings: bool

Whether warnings are enabled (globally)

§utf8: bool

Whether use utf8 is enabled.

§encoding: Option<String>

Active source encoding from use encoding.

§unicode_strings: bool

Whether use feature 'unicode_strings' or a matching feature bundle is enabled.

§locale: bool

Whether locale-sensitive behavior is enabled.

§locale_scope: Option<String>

Locale scope from use locale, if any.

§disabled_warning_categories: Vec<String>

Warning categories explicitly disabled via no warnings 'CATEGORY'.

When no warnings is used with specific category arguments (e.g. no warnings 'uninitialized'), the global warnings flag stays true and the disabled categories are recorded here. Only bare no warnings (no arguments) clears the global warnings flag.

§signatures_strict: bool

Whether explicit use feature 'signatures' currently implies strictness.

This is tracked separately from the raw strict flags so no feature 'signatures' can unwind the feature-driven implication without clobbering explicit use strict or version-implied strict state.

§features: Vec<&'static str>

Effective language features enabled in the current lexical scope.

This starts with any features implied by use vX.Y declarations and is then updated by explicit use feature / no feature pragmas.

§builtin_imports: Vec<String>

Lexically imported builtin short names from use builtin.

Implementations§

Source§

impl PragmaState

Source

pub fn all_strict() -> PragmaState

Create a new pragma state with all strict modes enabled

Source

pub fn is_warning_active(&self, category: &str) -> bool

Returns true if warnings are active for the given category.

Warnings for a category are active when:

  • The global warnings flag is true, and
  • The category is not listed in disabled_warning_categories.

If the global warnings flag is false (i.e. no warnings with no arguments was used), all categories are considered inactive regardless of the disabled_warning_categories list.

Source

pub fn has_feature(&self, feature: &str) -> bool

Returns true if the given feature name is currently enabled.

Source

pub fn has_builtin_import(&self, name: &str) -> bool

Returns true when a builtin short name was lexically imported in scope.

Trait Implementations§

Source§

impl Clone for PragmaState

Source§

fn clone(&self) -> PragmaState

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PragmaState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for PragmaState

Source§

fn default() -> PragmaState

Returns the “default value” for a type. Read more
Source§

impl From<PragmaSnapshot> for PragmaState

Source§

fn from(snapshot: PragmaSnapshot) -> PragmaState

Converts to this type from the input type.
Source§

impl From<PragmaState> for PragmaSnapshot

Source§

fn from(state: PragmaState) -> PragmaSnapshot

Converts to this type from the input type.
Source§

impl PartialEq for PragmaState

Source§

fn eq(&self, other: &PragmaState) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for PragmaState

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more