[−][src]Struct c2rust_refactor::transform::statics::CollectToStruct
static_collect_to_struct
Command
Usage: static_collect_to_struct STRUCT VAR
Marks: target
Collect marked statics into a single static struct.
Specifically:
- Find all statics marked
target
. For each one, record its name, type, and initializer expression, then delete it. - Generate a new struct definition named
STRUCT
. For each marked static, include a field ofSTRUCT
with the same name and type as the static. - Generate a new
static mut
namedVAR
whose type isSTRUCT
. Initialize it using the initializer expressions for the marked statics. - For each marked static
foo
, replace uses offoo
withVAR.foo
.
Example:
static mut FOO: i32 = 100; static mut BAR: bool = true; unsafe fn f() -> i32 { FOO }
After running static_collect_to_struct Globals G
, with both statics marked:
struct Globals { FOO: i32, BAR: bool, } static mut G: Globals = Globals { FOO: 100, BAR: true, }; unsafe fn f() -> i32 { G.FOO }
Fields
struct_name: String
instance_name: String
Trait Implementations
impl Transform for CollectToStruct
[src]
fn transform(&self, krate: &mut Crate, st: &CommandState, cx: &RefactorCtxt)
[src]
fn min_phase(&self) -> Phase
[src]
Return the minimum phase at which this transform can operate. See the Phase
docs for details. The default is Phase2
. Read more
Auto Trait Implementations
impl Send for CollectToStruct
impl Sync for CollectToStruct
Blanket Implementations
impl<T> Lone for T
[src]
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<E> SpecializationError for E
[src]
default fn not_found<S, T>(
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
[src]
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
impl<T> Erased for T
[src]
impl<T> Send for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Sync for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Same for T
type Output = T
Should always be Self
impl<T> MaybeResult for T
[src]
impl<'a, T> Captures for T where
T: ?Sized,
[src]
T: ?Sized,