#field #arrow #cc #pointers #access #operator #row

c-arrow

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

2 releases

0.1.4 Mar 24, 2021
0.1.3 Mar 24, 2021
0.1.2 Mar 24, 2021
0.1.1 Mar 24, 2021
0.1.0 Mar 24, 2021

#39 in #cc

Custom license

8KB
79 lines

c-arrow

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

Objects Explanations
<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));

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];

No runtime deps