Skip to content

Commit 3fe2b1d

Browse files
committed
Add basic structure for defining different events.
1 parent 672379c commit 3fe2b1d

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

ldk-server-protos/build.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ fn generate_protos() {
1515
prost_build::Config::new()
1616
.bytes(&["."])
1717
.compile_protos(
18-
&["src/proto/api.proto", "src/proto/types.proto", "src/proto/error.proto"],
18+
&[
19+
"src/proto/api.proto",
20+
"src/proto/types.proto",
21+
"src/proto/events.proto",
22+
"src/proto/error.proto",
23+
],
1924
&["src/proto/"],
2025
)
2126
.expect("protobuf compilation failed");
@@ -24,6 +29,8 @@ fn generate_protos() {
2429
fs::copy(from_path, "src/api.rs").unwrap();
2530
let from_path = Path::new(&env::var("OUT_DIR").unwrap()).join("types.rs");
2631
fs::copy(from_path, "src/types.rs").unwrap();
32+
let from_path = Path::new(&env::var("OUT_DIR").unwrap()).join("events.rs");
33+
fs::copy(from_path, "src/events.rs").unwrap();
2734
let from_path = Path::new(&env::var("OUT_DIR").unwrap()).join("error.rs");
2835
fs::copy(from_path, "src/error.rs").unwrap();
2936
}

ldk-server-protos/src/events.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/// EventEnvelope wraps different event types in a single message to be used by EventPublisher.
2+
#[allow(clippy::derive_partial_eq_without_eq)]
3+
#[derive(Clone, PartialEq, ::prost::Message)]
4+
pub struct EventEnvelope {
5+
#[prost(oneof = "event_envelope::Event", tags = "2")]
6+
pub event: ::core::option::Option<event_envelope::Event>,
7+
}
8+
/// Nested message and enum types in `EventEnvelope`.
9+
pub mod event_envelope {
10+
#[allow(clippy::derive_partial_eq_without_eq)]
11+
#[derive(Clone, PartialEq, ::prost::Oneof)]
12+
pub enum Event {
13+
#[prost(message, tag = "2")]
14+
PaymentForwarded(super::PaymentForwarded),
15+
}
16+
}
17+
/// PaymentForwarded indicates a payment was forwarded through the node.
18+
#[allow(clippy::derive_partial_eq_without_eq)]
19+
#[derive(Clone, PartialEq, ::prost::Message)]
20+
pub struct PaymentForwarded {
21+
#[prost(message, optional, tag = "1")]
22+
pub forwarded_payment: ::core::option::Option<super::types::ForwardedPayment>,
23+
}

ldk-server-protos/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
pub mod api;
22
pub mod error;
3+
pub mod events;
34
pub mod types;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
syntax = "proto3";
2+
import "types.proto";
3+
package events;
4+
5+
// EventEnvelope wraps different event types in a single message to be used by EventPublisher.
6+
message EventEnvelope {
7+
oneof event {
8+
PaymentForwarded payment_forwarded = 2;
9+
}
10+
}
11+
12+
// PaymentForwarded indicates a payment was forwarded through the node.
13+
message PaymentForwarded {
14+
types.ForwardedPayment forwarded_payment = 1;
15+
}

0 commit comments

Comments
 (0)