1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//! Proc-macros for `vgi-rpc`.
//!
//! Re-exported from `vgi-rpc` (behind the default-on `macros` feature)
//! so users only depend on `vgi-rpc` directly:
//!
//! ```ignore
//! use vgi_rpc::{service, unary, producer, exchange, VgiArrow, StreamState};
//! ```
use TokenStream;
/// Derive `VgiArrow` for a struct, generating a `Struct<fields>` Arrow
/// data type plus per-field read / build_singleton wiring.
///
/// Field types must themselves implement `VgiArrow`. Nullable fields
/// use `Option<T>`. Override the describe-format type name with
/// `#[vgi_arrow(name = "...")]`.
///
/// ```ignore
/// use vgi_rpc::VgiArrow;
///
/// #[derive(VgiArrow)]
/// #[vgi_arrow(name = "Point")]
/// struct Point { x: f64, y: f64 }
///
/// #[derive(VgiArrow)]
/// struct BoundingBox {
/// top_left: Point,
/// bottom_right: Point,
/// label: String,
/// }
/// ```
/// Derive `StreamStateCodec` (bincode-backed) and supply the
/// `encode_state` forwarder for `ProducerState` / `ExchangeState`.
///
/// Adds an inherent `__vgi_encode_state(&self)` helper that the trait
/// impl can call from `encode_state` in one line. Phase 4 of the macro
/// pass will land this; this stub keeps the public symbol stable.
/// Service-level attribute applied to an `impl Block`. Scans methods
/// tagged with `#[unary]`, `#[producer(...)]`, or `#[exchange(...)]`
/// and generates a `register_with(server, instance)` impl.
///
/// Phase 3+ of the macro pass will land this; this stub returns the
/// input unchanged so the public symbol is reserved.
/// No-op attribute consumed by `#[service]`. Standalone use is a
/// compile error in V1.
/// No-op attribute consumed by `#[service]`. Standalone use is a
/// compile error in V1.
/// No-op attribute consumed by `#[service]`. Standalone use is a
/// compile error in V1.
/// No-op attribute consumed by `#[service]` for per-parameter metadata.