Tag `KVStore` `(C-not exported)` as `Writeable` isn't mapped
authorMatt Corallo <git@bluematt.me>
Sun, 26 Jun 2022 18:14:30 +0000 (18:14 +0000)
committerMatt Corallo <git@bluematt.me>
Fri, 23 Sep 2022 08:17:40 +0000 (08:17 +0000)
Currently `Writeable` is mapped manually, making it impossible to
automatically map a trait method that is parameterized by
`Writeable` (as is true for the `write` method on `KVStore`).

Ultimately we'll want to move to automatically mapping `Writeable`
like any other trait (only manually mapping the std `Write` and
`Read` traits), so this is only a candidate for the bindings branch,
not upstream. That may take a few releases, however.

lightning/src/util/persist.rs

index d04c3430bcc90de0ec7211c4ff12be4a8e2d6bd6..00266df15f0bc0bef50edac87a4fc71cd2eef82b 100644 (file)
@@ -20,6 +20,7 @@ use super::{logger::Logger, ser::Writeable};
 /// Implementing `KVStorePersister` provides auto-implementations for [`Persister`]
 /// and [`Persist`] traits.  It uses "manager", "network_graph",
 /// and "monitors/{funding_txo_id}_{funding_txo_index}" for keys.
+/// (C-not exported)
 pub trait KVStorePersister {
        /// Persist the given writeable using the provided key
        fn persist<W: Writeable>(&self, key: &str, object: &W) -> io::Result<()>;