Macro rovv::row[][src]

row!() { /* proc-macro */ }

syntax:

// .view(optics!(a))
// .preview(optics!(b))
// .traverse(optics!(c))
row! { a: A, b: B?, c: C*, .. }

// control the mutability
row! { a: A, ref b: B, mut c: C, .. }

// with some bounds
row! { a: A, .. : Debug + Clone + 'a }

// pass an optic as the key, e.g. K = Optics![a.b] or even a generic argument
row! { [K]: V, .. }

transform

row! { ref a: A, mut b: B, c: C, .. : Trait1 + Trait2 + 'a }

to

impl LensRef<Optic![a], A> + LensMut<Optic![b], B> + Lens<Optic![c], C> + Trait1 + Trait2 + 'a