pub struct TranslationUnit {
pub imports: Vec<ImportStatement>,
pub global_directives: Vec<GlobalDirective>,
pub global_declarations: Vec<Spanned<GlobalDeclaration>>,
}Fields§
§imports: Vec<ImportStatement>Available on crate feature
§imports only.global_directives: Vec<GlobalDirective>§global_declarations: Vec<Spanned<GlobalDeclaration>>Implementations§
Source§impl TranslationUnit
impl TranslationUnit
Sourcepub fn new() -> TranslationUnit
pub fn new() -> TranslationUnit
New empty TranslationUnit
Sourcepub fn remove_voids(&mut self)
pub fn remove_voids(&mut self)
Remove all GlobalDeclaration::Void and Statement::Void
Trait Implementations§
Source§impl Clone for TranslationUnit
impl Clone for TranslationUnit
Source§fn clone(&self) -> TranslationUnit
fn clone(&self) -> TranslationUnit
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TranslationUnit
impl Debug for TranslationUnit
Source§impl Default for TranslationUnit
impl Default for TranslationUnit
Source§fn default() -> TranslationUnit
fn default() -> TranslationUnit
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TranslationUnit
impl<'de> Deserialize<'de> for TranslationUnit
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TranslationUnit, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TranslationUnit, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for TranslationUnit
impl Display for TranslationUnit
Source§impl Exec for TranslationUnit
Available on crate feature eval only.
impl Exec for TranslationUnit
Available on crate feature
eval only.Source§impl FromStr for TranslationUnit
impl FromStr for TranslationUnit
Source§impl Lower for TranslationUnit
Available on crate feature eval only.
impl Lower for TranslationUnit
Available on crate feature
eval only.Source§impl PartialEq for TranslationUnit
impl PartialEq for TranslationUnit
Source§impl Serialize for TranslationUnit
impl Serialize for TranslationUnit
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for TranslationUnit
Source§impl SyntaxUtil for TranslationUnit
Available on crate feature eval only.
impl SyntaxUtil for TranslationUnit
Available on crate feature
eval only.Source§fn user_decl(&self, name: &str) -> Option<&GlobalDeclaration>
fn user_decl(&self, name: &str) -> Option<&GlobalDeclaration>
find a global declaration by name.
Source§fn decl(&self, name: &str) -> Option<&GlobalDeclaration>
fn decl(&self, name: &str) -> Option<&GlobalDeclaration>
find a global declaration by name, including built-in ones.
Source§fn decl_decl(&self, name: &str) -> Option<&Declaration>
fn decl_decl(&self, name: &str) -> Option<&Declaration>
find a variable/value declaration by name.
Source§fn decl_struct(&self, name: &str) -> Option<&Struct>
fn decl_struct(&self, name: &str) -> Option<&Struct>
find a struct declaration by name. Read more
Source§fn resolve_alias(&self, name: &str) -> Option<&TypeExpression>
fn resolve_alias(&self, name: &str) -> Option<&TypeExpression>
resolve an alias name.
Source§fn resolve_ty<'a>(&'a self, ty: &'a TypeExpression) -> &'a TypeExpression
fn resolve_ty<'a>(&'a self, ty: &'a TypeExpression) -> &'a TypeExpression
resolve an aliases in a type expression.
Source§impl SyntaxUtil for TranslationUnit
impl SyntaxUtil for TranslationUnit
Source§fn retarget_idents(&mut self)
fn retarget_idents(&mut self)
Make all identifiers that point to the same declaration refer to the same string.
Retarget local references to the local declaration ident and global references to the global declaration ident. It does this by keeping track of the local declarations scope.
Same-scope declarations with the same name will have the same identifier.
Note: this can be valid code only with @if conditional declarations.
fn entry_points(&self) -> impl Iterator<Item = &Ident>
Auto Trait Implementations§
impl Freeze for TranslationUnit
impl RefUnwindSafe for TranslationUnit
impl Send for TranslationUnit
impl Sync for TranslationUnit
impl Unpin for TranslationUnit
impl UnsafeUnpin for TranslationUnit
impl UnwindSafe for TranslationUnit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more