Concretize `WriteableScore` into `MultiThreadedLockableScore`
authorMatt Corallo <git@bluematt.me>
Sun, 26 Jun 2022 01:44:21 +0000 (01:44 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 26 Jul 2022 23:09:04 +0000 (23:09 +0000)
commita19cb0e969113500a26c7b902cbc381fea32ca46
tree95c462abdf76672e3afeef766e3afa7d71eda552
parentf4f087d89d3b429d4daaa5346ffe16a92b809571
Concretize `WriteableScore` into `MultiThreadedLockableScore`

In general the bindings don't handle blanket implementations well -
they generate concrete implementations for everything and don't
bother building up enough context to be aware of the blanket
implementation to avoid duplicating it while still allowing users
to access struct(s) as all implemented traits.

Thus, implementing `WriteableScore` for all `LockableScore`s that
also implement `Writeable` is particularly impractical to map in
bindings.

Further, because `Score` already requires `Writeable`, having a
separate `WriteableScore` doesn't really make any sense.

Here we simply remove `WriteableScore` (in `c_bindings` mode)
entirely and push users through `MultiThreadedLockableScore` in the
higher-level traits that require `Score`.
lightning-background-processor/src/lib.rs
lightning/src/routing/scoring.rs
lightning/src/util/persist.rs