Crate c_arrow[][src]

Description

This Rust library allows you to use the arrow operator -> to access the field of the row pointer, just like C/C++.

Usage

pt![<link>]

get a mutable reference of the pointed field.

pt![<link> = <expression>];

assign expression to the pointed field.

pt![<link> = <link>];

assign the pointed field to the other pointed field.

Explanation

ObjectsExplanations
<func>A function returning the *mut pointer of a struct.
<met>A method which returns the *mut pointer of a struct.
<ptr>-><field>Dereferences and accesses the field.
<struct>.<field>Accesses the field directly.
<link>(<func> | <ptr> | <struct>) ((-> | .)(<field> | <met>))+

Example

let mut stack: Stack<char> = Stack::new();
"abcdefgh"
    .chars()
    .for_each(|c| stack.push(c));
unsafe {
    use c_arrow::{ pt, ref_pt };
    let top_back = pt![stack.top->back];
    pt![back_of(top_back)->back->data = 'x'];
    pt![stack.top->backs(4)->data = stack.back_of_top()->data];
}

Modules

c_arrow

Macros

pt
ref_pt