[][src]Struct c2rust_ast_builder::Builder

pub struct Builder { /* fields omitted */ }

Methods

impl Builder[src]

pub fn new() -> Builder[src]

pub fn vis<V: Make<Visibility>>(self, vis: V) -> Self[src]

pub fn pub_(self) -> Self[src]

pub fn set_mutbl<M: Make<Mutability>>(self, mutbl: M) -> Self[src]

pub fn mutbl(self) -> Self[src]

pub fn unsafety<U: Make<Unsafety>>(self, unsafety: U) -> Self[src]

pub fn unsafe_(self) -> Self[src]

pub fn constness<C: Make<Constness>>(self, constness: C) -> Self[src]

pub fn const_(self) -> Self[src]

pub fn abi<A: Make<Abi>>(self, abi: A) -> Self[src]

pub fn span<S: Make<Span>>(self, span: S) -> Self[src]

pub fn id(self, id: NodeId) -> Self[src]

Set the NodeId of the constructed AST.

Warning: Be careful with this option! Parts of the rewriter expect nodes with matching NodeIds to be identical in other ways as well. For best results, only call this method with fresh NodeIds, like those returned by st.next_node_id().

pub fn str_attr<K, V>(self, key: K, value: V) -> Self where
    K: Make<PathSegment>,
    V: IntoSymbol
[src]

pub fn single_attr<K>(self, key: K) -> Self where
    K: Make<PathSegment>, 
[src]

pub fn call_attr<K, V>(self, func: K, arguments: Vec<V>) -> Self where
    K: Make<PathSegment>,
    V: Make<Ident>, 
[src]

pub fn path_segment_with_args<I, P>(self, identifier: I, args: P) -> PathSegment where
    I: Make<Ident>,
    P: Make<GenericArgs>, 
[src]

pub fn parenthesized_args<Ts>(self, tys: Ts) -> ParenthesizedArgs where
    Ts: Make<Vec<P<Ty>>>, 
[src]

pub fn angle_bracketed_args<A>(self, args: Vec<A>) -> AngleBracketedArgs where
    A: Make<GenericArg>, 
[src]

pub fn generic_arg<A>(self, arg: A) -> GenericArg where
    A: Make<GenericArg>, 
[src]

pub fn ident<I>(self, name: I) -> Ident where
    I: Make<Ident>, 
[src]

pub fn path_segment<S>(self, seg: S) -> PathSegment where
    S: Make<PathSegment>, 
[src]

pub fn path<Pa>(self, path: Pa) -> Path where
    Pa: Make<Path>, 
[src]

pub fn abs_path<Pa>(self, path: Pa) -> Path where
    Pa: Make<Path>, 
[src]

pub fn anon_const<E>(self, expr: E) -> AnonConst where
    E: Make<P<Expr>>, 
[src]

pub fn spanned<T, U: Make<T>>(self, x: U) -> Spanned<T>[src]

pub fn array_expr<A>(self, args: Vec<A>) -> P<Expr> where
    A: Make<P<Expr>>, 
[src]

pub fn call_expr<F, A>(self, func: F, args: Vec<A>) -> P<Expr> where
    F: Make<P<Expr>>,
    A: Make<P<Expr>>, 
[src]

pub fn method_call_expr<E, S, A>(self, expr: E, seg: S, args: Vec<A>) -> P<Expr> where
    E: Make<P<Expr>>,
    S: Make<PathSegment>,
    A: Make<P<Expr>>, 
[src]

pub fn tuple_expr<E>(self, exprs: Vec<E>) -> P<Expr> where
    E: Make<P<Expr>>, 
[src]

pub fn binary_expr<O, E>(self, op: O, lhs: E, rhs: E) -> P<Expr> where
    O: Make<BinOpKind>,
    E: Make<P<Expr>>, 
[src]

pub fn unary_expr<O, E>(self, op: O, a: E) -> P<Expr> where
    O: Make<UnOp>,
    E: Make<P<Expr>>, 
[src]

pub fn lit_expr<L>(self, lit: L) -> P<Expr> where
    L: Make<Lit>, 
[src]

pub fn cast_expr<E, T>(self, e: E, t: T) -> P<Expr> where
    E: Make<P<Expr>>,
    T: Make<P<Ty>>, 
[src]

pub fn type_expr<E, T>(self, e: E, t: T) -> P<Expr> where
    E: Make<P<Expr>>,
    T: Make<P<Ty>>, 
[src]

pub fn block_expr<B>(self, blk: B) -> P<Expr> where
    B: Make<P<Block>>, 
[src]

pub fn labelled_block_expr<B, L>(self, blk: B, lbl: L) -> P<Expr> where
    B: Make<P<Block>>,
    L: Make<Label>, 
[src]

pub fn assign_expr<E1, E2>(self, lhs: E1, rhs: E2) -> P<Expr> where
    E1: Make<P<Expr>>,
    E2: Make<P<Expr>>, 
[src]

pub fn assign_op_expr<O, E1, E2>(self, op: O, lhs: E1, rhs: E2) -> P<Expr> where
    O: Make<BinOpKind>,
    E1: Make<P<Expr>>,
    E2: Make<P<Expr>>, 
[src]

pub fn index_expr<E1, E2>(self, lhs: E1, rhs: E2) -> P<Expr> where
    E1: Make<P<Expr>>,
    E2: Make<P<Expr>>, 
[src]

pub fn path_expr<Pa>(self, path: Pa) -> P<Expr> where
    Pa: Make<Path>, 
[src]

pub fn qpath_expr<Pa>(self, qself: Option<QSelf>, path: Pa) -> P<Expr> where
    Pa: Make<Path>, 
[src]

pub fn repeat_expr<E, N>(self, expr: E, n: N) -> P<Expr> where
    E: Make<P<Expr>>,
    N: Make<P<Expr>>, 
[src]

An array literal constructed from one repeated element. [expr; n]

pub fn paren_expr<E>(self, e: E) -> P<Expr> where
    E: Make<P<Expr>>, 
[src]

pub fn ident_expr<I>(self, name: I) -> P<Expr> where
    I: Make<Ident>, 
[src]

pub fn addr_of_expr<E>(self, e: E) -> P<Expr> where
    E: Make<P<Expr>>, 
[src]

pub fn mac_expr<M>(self, mac: M) -> P<Expr> where
    M: Make<Mac>, 
[src]

pub fn struct_expr<Pa>(self, path: Pa, fields: Vec<Field>) -> P<Expr> where
    Pa: Make<Path>, 
[src]

pub fn struct_expr_base<Pa, E>(
    self,
    path: Pa,
    fields: Vec<Field>,
    base: Option<E>
) -> P<Expr> where
    Pa: Make<Path>,
    E: Make<P<Expr>>, 
[src]

pub fn field_expr<E, F>(self, val: E, field: F) -> P<Expr> where
    E: Make<P<Expr>>,
    F: Make<Ident>, 
[src]

pub fn field<I, E>(self, ident: I, expr: E) -> Field where
    I: Make<Ident>,
    E: Make<P<Expr>>, 
[src]

pub fn match_expr<E>(self, cond: E, arms: Vec<Arm>) -> P<Expr> where
    E: Make<P<Expr>>, 
[src]

pub fn arm<Pa, E>(self, pats: Vec<Pa>, guard: Option<E>, body: E) -> Arm where
    E: Make<P<Expr>>,
    Pa: Make<P<Pat>>, 
[src]

pub fn bytestr_lit(self, s: Vec<u8>) -> Lit[src]

pub fn str_lit<S>(self, s: S) -> Lit where
    S: IntoSymbol
[src]

pub fn byte_lit(self, b: u8) -> Lit[src]

pub fn char_lit(self, c: char) -> Lit[src]

pub fn int_lit<T>(self, i: u128, ty: T) -> Lit where
    T: Make<LitIntType>, 
[src]

pub fn float_lit<S, T>(self, s: S, ty: T) -> Lit where
    S: IntoSymbol,
    T: Make<FloatTy>, 
[src]

pub fn float_unsuffixed_lit<S>(self, s: S) -> Lit where
    S: IntoSymbol
[src]

pub fn bool_lit(self, b: bool) -> Lit[src]

pub fn ifte_expr<C, T, E>(
    self,
    cond: C,
    then_case: T,
    else_case: Option<E>
) -> P<Expr> where
    C: Make<P<Expr>>,
    T: Make<P<Block>>,
    E: Make<P<Expr>>, 
[src]

pub fn while_expr<C, B, I>(self, cond: C, body: B, label: Option<I>) -> P<Expr> where
    C: Make<P<Expr>>,
    B: Make<P<Block>>,
    I: Make<Ident>, 
[src]

pub fn loop_expr<B, I>(self, body: B, label: Option<I>) -> P<Expr> where
    B: Make<P<Block>>,
    I: Make<Ident>, 
[src]

pub fn for_expr<Pa, E, B, I>(
    self,
    pat: Pa,
    expr: E,
    body: B,
    label: Option<I>
) -> P<Expr> where
    Pa: Make<P<Pat>>,
    E: Make<P<Expr>>,
    B: Make<P<Block>>,
    I: Make<Ident>, 
[src]

pub fn ident_pat<I>(self, name: I) -> P<Pat> where
    I: Make<Ident>, 
[src]

pub fn tuple_pat<Pa>(self, pats: Vec<Pa>) -> P<Pat> where
    Pa: Make<P<Pat>>, 
[src]

pub fn qpath_pat<Pa>(self, qself: Option<QSelf>, path: Pa) -> P<Pat> where
    Pa: Make<Path>, 
[src]

pub fn wild_pat(self) -> P<Pat>[src]

pub fn lit_pat<L>(self, lit: L) -> P<Pat> where
    L: Make<P<Expr>>, 
[src]

pub fn mac_pat<M>(self, mac: M) -> P<Pat> where
    M: Make<Mac>, 
[src]

pub fn ident_ref_pat<I>(self, name: I) -> P<Pat> where
    I: Make<Ident>, 
[src]

pub fn barefn_ty<T>(self, decl: T) -> P<Ty> where
    T: Make<P<FnDecl>>, 
[src]

pub fn array_ty<T, E>(self, ty: T, len: E) -> P<Ty> where
    T: Make<P<Ty>>,
    E: Make<P<Expr>>, 
[src]

pub fn slice_ty<T>(self, ty: T) -> P<Ty> where
    T: Make<P<Ty>>, 
[src]

pub fn ptr_ty<T>(self, ty: T) -> P<Ty> where
    T: Make<P<Ty>>, 
[src]

pub fn ref_ty<T>(self, ty: T) -> P<Ty> where
    T: Make<P<Ty>>, 
[src]

pub fn ref_lt_ty<L, T>(self, lt: L, ty: T) -> P<Ty> where
    L: Make<Lifetime>,
    T: Make<P<Ty>>, 
[src]

pub fn never_ty(self) -> P<Ty>[src]

pub fn tuple_ty<T>(self, elem_tys: Vec<T>) -> P<Ty> where
    T: Make<P<Ty>>, 
[src]

pub fn path_ty<Pa>(self, path: Pa) -> P<Ty> where
    Pa: Make<Path>, 
[src]

pub fn qpath_ty<Pa>(self, qself: Option<QSelf>, path: Pa) -> P<Ty> where
    Pa: Make<Path>, 
[src]

pub fn ident_ty<I>(self, name: I) -> P<Ty> where
    I: Make<Ident>, 
[src]

pub fn infer_ty(self) -> P<Ty>[src]

pub fn mac_ty<M>(self, mac: M) -> P<Ty> where
    M: Make<Mac>, 
[src]

pub fn cvar_args_ty(self) -> P<Ty>[src]

pub fn local_stmt<L>(self, local: L) -> Stmt where
    L: Make<P<Local>>, 
[src]

pub fn expr_stmt<E>(self, expr: E) -> Stmt where
    E: Make<P<Expr>>, 
[src]

pub fn semi_stmt<E>(self, expr: E) -> Stmt where
    E: Make<P<Expr>>, 
[src]

pub fn item_stmt<I>(self, item: I) -> Stmt where
    I: Make<P<Item>>, 
[src]

pub fn mac_stmt<M>(self, mac: M) -> Stmt where
    M: Make<Mac>, 
[src]

pub fn static_item<I, T, E>(self, name: I, ty: T, init: E) -> P<Item> where
    I: Make<Ident>,
    T: Make<P<Ty>>,
    E: Make<P<Expr>>, 
[src]

pub fn const_item<I, T, E>(self, name: I, ty: T, init: E) -> P<Item> where
    I: Make<Ident>,
    T: Make<P<Ty>>,
    E: Make<P<Expr>>, 
[src]

pub fn fn_item<I, D, B>(self, name: I, decl: D, block: B) -> P<Item> where
    I: Make<Ident>,
    D: Make<P<FnDecl>>,
    B: Make<P<Block>>, 
[src]

pub fn fn_decl(
    self,
    inputs: Vec<Arg>,
    output: FunctionRetTy,
    c_variadic: bool
) -> P<FnDecl>
[src]

pub fn struct_item<I>(self, name: I, fields: Vec<StructField>) -> P<Item> where
    I: Make<Ident>, 
[src]

pub fn union_item<I>(self, name: I, fields: Vec<StructField>) -> P<Item> where
    I: Make<Ident>, 
[src]

pub fn enum_item<I>(self, name: I, fields: Vec<Variant>) -> P<Item> where
    I: Make<Ident>, 
[src]

pub fn type_item<I, T>(self, name: I, ty: T) -> P<Item> where
    I: Make<Ident>,
    T: Make<P<Ty>>, 
[src]

pub fn mod_item<I>(self, name: I, m: Mod) -> P<Item> where
    I: Make<Ident>, 
[src]

pub fn mod_<I>(self, items: Vec<I>) -> Mod where
    I: Make<P<Item>>, 
[src]

pub fn mac_item<M>(self, mac: M) -> P<Item> where
    M: Make<Mac>, 
[src]

pub fn variant<I>(self, name: I, dat: VariantData) -> Variant where
    I: Make<Ident>, 
[src]

pub fn unit_variant<I, E>(self, name: I, disc: Option<E>) -> Variant where
    I: Make<Ident>,
    E: Make<P<Expr>>, 
[src]

pub fn impl_item<T>(self, ty: T, items: Vec<ImplItem>) -> P<Item> where
    T: Make<P<Ty>>, 
[src]

pub fn extern_crate_item<I>(self, name: I, rename: Option<I>) -> P<Item> where
    I: Make<Ident>, 
[src]

pub fn use_item<Pa, I>(self, path: Pa, rename: Option<I>) -> P<Item> where
    Pa: Make<Path>,
    I: Make<Ident>, 
[src]

pub fn use_multiple_item<Pa, I>(self, path: Pa, inner: Vec<I>) -> P<Item> where
    Pa: Make<Path>,
    I: Make<Ident>, 
[src]

pub fn foreign_items(self, items: Vec<ForeignItem>) -> P<Item>[src]

pub fn mac_impl_item<M>(self, mac: M) -> ImplItem where
    M: Make<Mac>, 
[src]

pub fn mac_trait_item<M>(self, mac: M) -> TraitItem where
    M: Make<Mac>, 
[src]

pub fn fn_foreign_item<I, D>(self, name: I, decl: D) -> ForeignItem where
    I: Make<Ident>,
    D: Make<P<FnDecl>>, 
[src]

pub fn static_foreign_item<I, T>(self, name: I, ty: T) -> ForeignItem where
    I: Make<Ident>,
    T: Make<P<Ty>>, 
[src]

pub fn ty_foreign_item<I>(self, name: I) -> ForeignItem where
    I: Make<Ident>, 
[src]

pub fn mac_foreign_item<M>(self, mac: M) -> ForeignItem where
    M: Make<Mac>, 
[src]

pub fn struct_field<I, T>(self, ident: I, ty: T) -> StructField where
    I: Make<Ident>,
    T: Make<P<Ty>>, 
[src]

pub fn enum_field<T>(self, ty: T) -> StructField where
    T: Make<P<Ty>>, 
[src]

pub fn block<S>(self, stmts: Vec<S>) -> P<Block> where
    S: Make<Stmt>, 
[src]

pub fn label<L>(self, lbl: L) -> Label where
    L: Make<Label>, 
[src]

pub fn break_expr_value<L, E>(
    self,
    label: Option<L>,
    value: Option<E>
) -> P<Expr> where
    L: Make<Label>,
    E: Make<P<Expr>>, 
[src]

pub fn arg<T, Pt>(self, ty: T, pat: Pt) -> Arg where
    T: Make<P<Ty>>,
    Pt: Make<P<Pat>>, 
[src]

pub fn self_arg<S>(self, kind: S) -> Arg where
    S: Make<SelfKind>, 
[src]

pub fn ty_param<I>(self, ident: I) -> GenericParam where
    I: Make<Ident>, 
[src]

pub fn ty<T>(self, node: TyKind) -> Ty[src]

pub fn attribute<Pa, Ts>(
    self,
    style: AttrStyle,
    path: Pa,
    tokens: Ts
) -> Attribute where
    Pa: Make<Path>,
    Ts: Make<TokenStream>, 
[src]

pub fn meta_item_attr(self, style: AttrStyle, meta_item: MetaItem) -> Self[src]

pub fn meta_item<I, K>(self, path: I, kind: K) -> MetaItem where
    I: Make<Path>,
    K: Make<MetaItemKind>, 
[src]

pub fn nested_meta_item<K>(self, kind: K) -> NestedMetaItem where
    K: Make<NestedMetaItem>, 
[src]

pub fn as_inner_attrs(self) -> Vec<Attribute>[src]

pub fn mac<Pa, Ts>(self, path: Pa, tts: Ts, delim: MacDelimiter) -> Mac where
    Pa: Make<Path>,
    Ts: Make<TokenStream>, 
[src]

pub fn local<V, T, E>(self, pat: V, ty: Option<T>, init: Option<E>) -> Local where
    V: Make<P<Pat>>,
    T: Make<P<Ty>>,
    E: Make<P<Expr>>, 
[src]

Create a local variable

pub fn return_expr<E>(self, val: Option<E>) -> P<Expr> where
    E: Make<P<Expr>>, 
[src]

pub fn continue_expr<I>(self, label: Option<I>) -> P<Expr> where
    I: Make<Ident>, 
[src]

pub fn break_expr<I>(self, label: Option<I>) -> P<Expr> where
    I: Make<Ident>, 
[src]

pub fn closure_expr<D, E>(
    self,
    capture: CaptureBy,
    mov: Movability,
    decl: D,
    body: E
) -> P<Expr> where
    D: Make<P<FnDecl>>,
    E: Make<P<Expr>>, 
[src]

Trait Implementations

impl Clone for Builder[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Builder[src]

Auto Trait Implementations

impl !Send for Builder

impl !Sync for Builder

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<E> SpecializationError for E[src]

impl<T> Send for T where
    T: ?Sized
[src]

impl<T> Sync for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]

impl<T> MaybeResult for T[src]

impl<'a, T> Captures for T where
    T: ?Sized
[src]

impl<T> Erased for T