]> git.bitcoin.ninja Git - rust-lightning/commit
[bindings] Handle generic-ized impl blocks by concretizing them
authorMatt Corallo <git@bluematt.me>
Thu, 11 Feb 2021 16:47:51 +0000 (11:47 -0500)
committerMatt Corallo <git@bluematt.me>
Thu, 11 Feb 2021 21:19:41 +0000 (16:19 -0500)
commit5d51edb5ad540ff473e39ab846f0ee485545b91b
tree6d6fd96d26929a3a86b717ea64d8a70e80b777d4
parent04aae0e99236942f95211ab2f65de6c91d78193a
[bindings] Handle generic-ized impl blocks by concretizing them

This handles, for example, the `impl<X: Y> for Features<X>` blocks
which are generic across a number of different contexts. We do so
by walking the set of structs which alias Features and then walking
their generic arguments to check that they meet the bounds
specified in the impl block. For each alias which does, we create
a dummy, explicit, `impl XFeatures` block with the same content as
the original and recurse.
c-bindings-gen/src/main.rs
c-bindings-gen/src/types.rs