]> git.bitcoin.ninja Git - ldk-c-bindings/blob - lightning-c-bindings/src/lightning/mod.rs
Merge pull request #100 from TheBlueMatt/main
[ldk-c-bindings] / lightning-c-bindings / src / lightning / mod.rs
1 // This file is Copyright its original authors, visible in version control
2 // history and in the source files from which this was generated.
3 //
4 // This file is licensed under the license available in the LICENSE or LICENSE.md
5 // file in the root of this repository or, if no such file exists, the same
6 // license as that which applies to the original source files from which this
7 // source was automatically generated.
8
9 //!lightning
10 //! Rust-Lightning, not Rusty's Lightning!
11 //!
12 //! A full-featured but also flexible lightning implementation, in library form. This allows the
13 //! user (you) to decide how they wish to use it instead of being a fully self-contained daemon.
14 //! This means there is no built-in threading/execution environment and it's up to the user to
15 //! figure out how best to make networking happen/timers fire/things get written to disk/keys get
16 //! generated/etc. This makes it a good candidate for tight integration into an existing wallet
17 //! instead of having a rather-separate lightning appendage to a wallet.
18 //!
19 //! `default` features are:
20 //!
21 //! * `std` - enables functionalities which require `std`, including `std::io` trait implementations and things which utilize time
22 //! * `grind_signatures` - enables generation of [low-r bitcoin signatures](https://bitcoin.stackexchange.com/questions/111660/what-is-signature-grinding),
23 //! which saves 1 byte per signature in 50% of the cases (see [bitcoin PR #13666](https://github.com/bitcoin/bitcoin/pull/13666))
24 //!
25 //! Available features are:
26 //!
27 //! * `std`
28 //! * `grind_signatures`
29 //! * `no-std ` - exposes write trait implementations from the `core2` crate (at least one of `no-std` or `std` are required)
30 //! * Skip logging of messages at levels below the given log level:
31 //!     * `max_level_off`
32 //!     * `max_level_error`
33 //!     * `max_level_warn`
34 //!     * `max_level_info`
35 //!     * `max_level_debug`
36 //!     * `max_level_trace`
37
38 use alloc::str::FromStr;
39 use core::ffi::c_void;
40 use core::convert::Infallible;
41 use bitcoin::hashes::Hash;
42 use crate::c_types::*;
43 #[cfg(feature="no-std")]
44 use alloc::{vec::Vec, boxed::Box};
45
46 pub mod util;
47 pub mod chain;
48 pub mod ln;
49 pub mod routing;
50 pub mod onion_message;
51 mod offers {
52
53 use alloc::str::FromStr;
54 use core::ffi::c_void;
55 use core::convert::Infallible;
56 use bitcoin::hashes::Hash;
57 use crate::c_types::*;
58 #[cfg(feature="no-std")]
59 use alloc::{vec::Vec, boxed::Box};
60
61 mod invoice {
62
63 use alloc::str::FromStr;
64 use core::ffi::c_void;
65 use core::convert::Infallible;
66 use bitcoin::hashes::Hash;
67 use crate::c_types::*;
68 #[cfg(feature="no-std")]
69 use alloc::{vec::Vec, boxed::Box};
70
71 }
72 mod invoice_request {
73
74 use alloc::str::FromStr;
75 use core::ffi::c_void;
76 use core::convert::Infallible;
77 use bitcoin::hashes::Hash;
78 use crate::c_types::*;
79 #[cfg(feature="no-std")]
80 use alloc::{vec::Vec, boxed::Box};
81
82 }
83 mod merkle {
84
85 use alloc::str::FromStr;
86 use core::ffi::c_void;
87 use core::convert::Infallible;
88 use bitcoin::hashes::Hash;
89 use crate::c_types::*;
90 #[cfg(feature="no-std")]
91 use alloc::{vec::Vec, boxed::Box};
92
93 }
94 mod offer {
95
96 use alloc::str::FromStr;
97 use core::ffi::c_void;
98 use core::convert::Infallible;
99 use bitcoin::hashes::Hash;
100 use crate::c_types::*;
101 #[cfg(feature="no-std")]
102 use alloc::{vec::Vec, boxed::Box};
103
104 }
105 mod parse {
106
107 use alloc::str::FromStr;
108 use core::ffi::c_void;
109 use core::convert::Infallible;
110 use bitcoin::hashes::Hash;
111 use crate::c_types::*;
112 #[cfg(feature="no-std")]
113 use alloc::{vec::Vec, boxed::Box};
114
115 mod sealed {
116
117 use alloc::str::FromStr;
118 use core::ffi::c_void;
119 use core::convert::Infallible;
120 use bitcoin::hashes::Hash;
121 use crate::c_types::*;
122 #[cfg(feature="no-std")]
123 use alloc::{vec::Vec, boxed::Box};
124
125 }
126 }
127 mod payer {
128
129 use alloc::str::FromStr;
130 use core::ffi::c_void;
131 use core::convert::Infallible;
132 use bitcoin::hashes::Hash;
133 use crate::c_types::*;
134 #[cfg(feature="no-std")]
135 use alloc::{vec::Vec, boxed::Box};
136
137 }
138 mod refund {
139
140 use alloc::str::FromStr;
141 use core::ffi::c_void;
142 use core::convert::Infallible;
143 use bitcoin::hashes::Hash;
144 use crate::c_types::*;
145 #[cfg(feature="no-std")]
146 use alloc::{vec::Vec, boxed::Box};
147
148 }
149 }
150 mod io_extras {
151
152 use alloc::str::FromStr;
153 use core::ffi::c_void;
154 use core::convert::Infallible;
155 use bitcoin::hashes::Hash;
156 use crate::c_types::*;
157 #[cfg(feature="no-std")]
158 use alloc::{vec::Vec, boxed::Box};
159
160 }
161 mod prelude {
162
163 use alloc::str::FromStr;
164 use core::ffi::c_void;
165 use core::convert::Infallible;
166 use bitcoin::hashes::Hash;
167 use crate::c_types::*;
168 #[cfg(feature="no-std")]
169 use alloc::{vec::Vec, boxed::Box};
170
171 }
172 mod sync {
173
174 use alloc::str::FromStr;
175 use core::ffi::c_void;
176 use core::convert::Infallible;
177 use bitcoin::hashes::Hash;
178 use crate::c_types::*;
179 #[cfg(feature="no-std")]
180 use alloc::{vec::Vec, boxed::Box};
181
182 mod fairrwlock {
183
184 use alloc::str::FromStr;
185 use core::ffi::c_void;
186 use core::convert::Infallible;
187 use bitcoin::hashes::Hash;
188 use crate::c_types::*;
189 #[cfg(feature="no-std")]
190 use alloc::{vec::Vec, boxed::Box};
191
192 }
193 mod ext_impl {
194
195 use alloc::str::FromStr;
196 use core::ffi::c_void;
197 use core::convert::Infallible;
198 use bitcoin::hashes::Hash;
199 use crate::c_types::*;
200 #[cfg(feature="no-std")]
201 use alloc::{vec::Vec, boxed::Box};
202
203 }
204 }