pub struct Variant {
pub vis: Visibility,
pub ident: String,
pub data: VariantData,
pub disr_expr: Option<Expr>,
}Fields§
§vis: Visibility§ident: String§data: VariantData§disr_expr: Option<Expr>Implementations§
source§impl Variant
impl Variant
pub fn new( vis: Visibility, ident: impl Into<String>, data: VariantData, disr_expr: Option<Expr> ) -> Self
sourcepub fn empty(ident: impl Into<String>) -> Self
pub fn empty(ident: impl Into<String>) -> Self
Examples found in repository?
examples/enum.rs (line 6)
1 2 3 4 5 6 7 8 9 10 11 12 13
fn main() -> Result<(), Box<dyn std::error::Error>> {
use ruast::*;
let mut krate = Crate::new();
let def = EnumDef::empty("Foo")
.with_variant(Variant::empty("Bar"))
.with_variant(Variant::tuple("Baz", vec![FieldDef::anonymous("u32")]));
krate.add_item(def);
let imp = Impl::empty("Foo").with_item(Fn::empty_method("test", Pat::ref_self()));
krate.add_item(imp);
println!("{krate}");
Ok(())
}pub fn inherited(ident: impl Into<String>, data: VariantData) -> Self
pub fn struct_(ident: impl Into<String>, fields: Vec<FieldDef>) -> Self
sourcepub fn tuple(ident: impl Into<String>, fields: Vec<FieldDef>) -> Self
pub fn tuple(ident: impl Into<String>, fields: Vec<FieldDef>) -> Self
Examples found in repository?
examples/enum.rs (line 7)
1 2 3 4 5 6 7 8 9 10 11 12 13
fn main() -> Result<(), Box<dyn std::error::Error>> {
use ruast::*;
let mut krate = Crate::new();
let def = EnumDef::empty("Foo")
.with_variant(Variant::empty("Bar"))
.with_variant(Variant::tuple("Baz", vec![FieldDef::anonymous("u32")]));
krate.add_item(def);
let imp = Impl::empty("Foo").with_item(Fn::empty_method("test", Pat::ref_self()));
krate.add_item(imp);
println!("{krate}");
Ok(())
}Trait Implementations§
source§impl From<Variant> for TokenStream
impl From<Variant> for TokenStream
source§impl HasItem<Variant> for EnumDef
impl HasItem<Variant> for EnumDef
fn items(&self) -> &[Variant]
fn items_mut(&mut self) -> &mut Vec<Variant>
fn with_item(self, item: impl Into<Itm>) -> Selfwhere Self: Sized,
fn add_item(&mut self, item: impl Into<Itm>)
fn add_pub_item<K>(&mut self, item: impl Into<K>)where Itm: AddVisibility<K>,
fn with_pub_item<K>(self, item: impl Into<K>) -> Selfwhere Self: Sized, Itm: AddVisibility<K>,
fn remove_item(&mut self, index: usize) -> Option<Itm>
fn remove_item_by_id(&mut self, ident: &str) -> Option<Itm>
fn get_item(&self, index: usize) -> Option<&Itm>
fn get_item_by_id(&self, ident: &str) -> Option<&Itm>
source§impl PartialEq for Variant
impl PartialEq for Variant
impl Eq for Variant
impl StructuralEq for Variant
impl StructuralPartialEq for Variant
Auto Trait Implementations§
impl RefUnwindSafe for Variant
impl Send for Variant
impl Sync for Variant
impl Unpin for Variant
impl UnwindSafe for Variant
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