queryweave-derive 0.2.1

Derive macros generating filtering, sorting, paging and merge-patch types for a domain model and the layers mirroring it.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use queryweave::MergePatchNullableFields;
use queryweave_derive::MergePatchNullableFields;

struct OrderId(i32);

// An `Option<T>` field cannot be cleared and needs no annotation; a field that
// is not patched at all (an id) is marked `#[merge_patch(skip)]`.
#[derive(MergePatchNullableFields)]
struct MergePatchOrderModel {
    #[merge_patch(skip)]
    id: OrderId,
    client: queryweave::Patch<String>,
    capacity: Option<i32>,
}

fn main() {
    let _ = MergePatchOrderModel::is_nullable("capacity");
}