ldk-c-bindings
18 months agoMerge pull request #63 from TheBlueMatt/main v0.0.105.2
Matt Corallo [Wed, 23 Mar 2022 20:23:23 +0000 (20:23 +0000)]
Merge pull request #63 from TheBlueMatt/main

Consider all reference types clonable + handle refs-in-tuples

18 months agoUpdate auto-generated bindings
Matt Corallo [Wed, 23 Mar 2022 03:37:53 +0000 (03:37 +0000)]
Update auto-generated bindings

18 months agoManually handle generated types containing references to opaques
Matt Corallo [Wed, 23 Mar 2022 16:29:40 +0000 (16:29 +0000)]
Manually handle generated types containing references to opaques

This is really disgusting, we really shouldn't have references in
generated types at all, its just a mess. Instead, we should break
apart arguments when its a tuple, which would solve this more
cleanly.

18 months agoConsider all reference types clonable (because they are)
Matt Corallo [Wed, 23 Mar 2022 03:38:15 +0000 (03:38 +0000)]
Consider all reference types clonable (because they are)

18 months agoMerge pull request #62 from TheBlueMatt/main
Matt Corallo [Wed, 23 Mar 2022 03:14:55 +0000 (03:14 +0000)]
Merge pull request #62 from TheBlueMatt/main

Expose ProbabilisticScorer in Bindings

18 months agoUpdate auto-generated bindings with the ProbabilisticScorer
Matt Corallo [Wed, 23 Mar 2022 00:55:40 +0000 (00:55 +0000)]
Update auto-generated bindings with the ProbabilisticScorer

18 months agoSwitch to using the Prob. Scorer in the C++ demo
Matt Corallo [Wed, 23 Mar 2022 00:54:19 +0000 (00:54 +0000)]
Switch to using the Prob. Scorer in the C++ demo

18 months agoAllow method call args to be converted with a new_var conversion
Matt Corallo [Tue, 22 Mar 2022 23:47:22 +0000 (23:47 +0000)]
Allow method call args to be converted with a new_var conversion

The call was already there, not sure why we were asserting on it
not printing anything...

18 months agoPass types through `resolve_type` in a few additional places
Matt Corallo [Mon, 21 Mar 2022 01:21:50 +0000 (01:21 +0000)]
Pass types through `resolve_type` in a few additional places

Over time I'd like to swap all of our generic resolution to pass
through `resolve_type` instead of the current path resolution, as
its strictly more flexible, but for now we just add the few we need.

18 months agoSeparate printing references-with-lifetimes from c-vs-rust types
Matt Corallo [Mon, 21 Mar 2022 19:13:42 +0000 (19:13 +0000)]
Separate printing references-with-lifetimes from c-vs-rust types

(and use C types with lifetimes in generic struct creation)

18 months agoProcess all type aliases as C types, leaning on annotations to skip
Matt Corallo [Fri, 18 Mar 2022 03:23:28 +0000 (03:23 +0000)]
Process all type aliases as C types, leaning on annotations to skip

Previously we'd used the presence of generics on a type alias
definition to decide when to skip creation of a corresponding C
type. However, with `ProbabilisticScorer`, we now have a type alias
which has a generic bound but which we still want to create a C
type for.

18 months agoMerge pull request #61 from TheBlueMatt/main v0.0.105.1
Matt Corallo [Thu, 3 Mar 2022 06:52:50 +0000 (06:52 +0000)]
Merge pull request #61 from TheBlueMatt/main

Implement `Clone` for `SecretKey`

18 months agoImplement `Clone` for `SecretKey`
Matt Corallo [Thu, 3 Mar 2022 03:20:07 +0000 (03:20 +0000)]
Implement `Clone` for `SecretKey`

18 months agoMerge pull request #60 from TheBlueMatt/main v0.0.105.0
Matt Corallo [Wed, 2 Mar 2022 18:53:49 +0000 (18:53 +0000)]
Merge pull request #60 from TheBlueMatt/main

Update to 0.0.105

18 months agoUpdate bindings workflow in CI to 0.0.105
Matt Corallo [Wed, 2 Mar 2022 03:24:28 +0000 (03:24 +0000)]
Update bindings workflow in CI to 0.0.105

18 months agoUpdate auto-generated bindings to 0.0.106
Matt Corallo [Wed, 2 Mar 2022 03:53:18 +0000 (03:53 +0000)]
Update auto-generated bindings to 0.0.106

18 months agoUpdate demo.cpp with latest upstream API
Matt Corallo [Wed, 9 Feb 2022 21:48:41 +0000 (21:48 +0000)]
Update demo.cpp with latest upstream API

18 months agoExplicitly refer to `format!()` with an `alloc` prefix for no-std
Matt Corallo [Wed, 2 Mar 2022 05:33:31 +0000 (05:33 +0000)]
Explicitly refer to `format!()` with an `alloc` prefix for no-std

18 months agoAdd function-call generic parameters when they're resovable
Matt Corallo [Wed, 2 Mar 2022 03:19:46 +0000 (03:19 +0000)]
Add function-call generic parameters when they're resovable

We really shouldn't ever actually need to do this - rustc should be
smart enough to figure out what we're doing given all the
parameters are concrete types, but this appears to be failing
sometimes.

18 months agoHandle `Option<[u8; 32]>`, mapping it same as `Option<&[u8; 32]>`
Matt Corallo [Wed, 2 Mar 2022 01:23:07 +0000 (01:23 +0000)]
Handle `Option<[u8; 32]>`, mapping it same as `Option<&[u8; 32]>`

18 months agoDon't mark everything with a feature bound as TestOnly
Matt Corallo [Wed, 9 Feb 2022 21:46:27 +0000 (21:46 +0000)]
Don't mark everything with a feature bound as TestOnly

18 months agoConvert slices containing non-primitives that are clonable
Matt Corallo [Wed, 9 Feb 2022 21:16:31 +0000 (21:16 +0000)]
Convert slices containing non-primitives that are clonable

18 months agoUpdate build for lightning-invoice no-std support
Matt Corallo [Wed, 9 Feb 2022 19:21:35 +0000 (19:21 +0000)]
Update build for lightning-invoice no-std support

18 months agoRecognize `bitcoin::bech32::u5` instead of only `bech32::u5`
Matt Corallo [Wed, 9 Feb 2022 18:11:08 +0000 (18:11 +0000)]
Recognize `bitcoin::bech32::u5` instead of only `bech32::u5`

18 months agoMerge pull request #59 from TheBlueMatt/main
Matt Corallo [Tue, 1 Mar 2022 04:19:24 +0000 (04:19 +0000)]
Merge pull request #59 from TheBlueMatt/main

Detect aarch64-osx for using apple sed as well

19 months agoDetect aarch64-osx for using apple sed as well
Matt Corallo [Mon, 21 Feb 2022 18:36:19 +0000 (18:36 +0000)]
Detect aarch64-osx for using apple sed as well

May fix #58, but there's probably other broken stuff around.

20 months agoMerge pull request #57 from TheBlueMatt/main
Matt Corallo [Mon, 17 Jan 2022 00:19:00 +0000 (00:19 +0000)]
Merge pull request #57 from TheBlueMatt/main

Optimize more aggressively for WASM builds

20 months agoOverwrite ldk_ver.h to avoid back-to-back builds duplicating consts
Matt Corallo [Sun, 16 Jan 2022 03:02:37 +0000 (03:02 +0000)]
Overwrite ldk_ver.h to avoid back-to-back builds duplicating consts

This causes back-to-back builds to have an ldk_ver.h for which the
oldest content dominates.

20 months agoStop passing -mcpu=sandybridge to wasm builds on x86
Matt Corallo [Sun, 16 Jan 2022 02:49:36 +0000 (02:49 +0000)]
Stop passing -mcpu=sandybridge to wasm builds on x86

20 months agoUse -O1 on WASM debug builds as they are otherwise too slow to run.
Matt Corallo [Sun, 16 Jan 2022 00:06:17 +0000 (00:06 +0000)]
Use -O1 on WASM debug builds as they are otherwise too slow to run.

20 months agoDrop `cargo rustc` in favor of using $RUSTFLAGS
Matt Corallo [Sat, 15 Jan 2022 23:22:23 +0000 (23:22 +0000)]
Drop `cargo rustc` in favor of using $RUSTFLAGS

cargo rustc only passes the given arguments to the linking rustc,
not any building rustc calls, which is not generally what we want.

This further reduces `liblightningjs_release.wasm` from 2.4MB to
2.3 MB.

20 months agoOptimize more aggressively for WASM builds
Matt Corallo [Sat, 15 Jan 2022 22:59:11 +0000 (22:59 +0000)]
Optimize more aggressively for WASM builds

Use `-Oz` instead of `-Os` because why not, and include LLVM
bitcode in C dependencies.

This reduces `liblightningjs_release.wasm` from 3.0MB to 2.4MB,
likely mostly from removing secp256k1 symbols that were unused.

20 months agoMerge pull request #54 from TheBlueMatt/main v0.0.104.1
Matt Corallo [Thu, 6 Jan 2022 19:54:22 +0000 (19:54 +0000)]
Merge pull request #54 from TheBlueMatt/main

Support `no-std`

20 months agoUpdate auto-generated bindings
Matt Corallo [Wed, 5 Jan 2022 06:43:58 +0000 (06:43 +0000)]
Update auto-generated bindings

20 months agoUpdate git commit hash to instead point to 0.0.104-bindings branch
Matt Corallo [Thu, 6 Jan 2022 03:48:01 +0000 (03:48 +0000)]
Update git commit hash to instead point to 0.0.104-bindings branch

20 months agoSupport no_std on the generated crate
Matt Corallo [Tue, 4 Jan 2022 20:30:55 +0000 (20:30 +0000)]
Support no_std on the generated crate

20 months agoSwap std references in generated code for core/alloc references
Matt Corallo [Tue, 4 Jan 2022 20:30:37 +0000 (20:30 +0000)]
Swap std references in generated code for core/alloc references

20 months agoSupport building dependent crates with `no-std`
Matt Corallo [Tue, 4 Jan 2022 19:09:50 +0000 (19:09 +0000)]
Support building dependent crates with `no-std`

20 months agoMerge pull request #53 from orenfromberg/patch-1
Matt Corallo [Wed, 29 Dec 2021 19:34:59 +0000 (19:34 +0000)]
Merge pull request #53 from orenfromberg/patch-1

Improving readability of genbindings.sh

20 months agoUpdate genbindings.sh
Oren Fromberg [Wed, 29 Dec 2021 03:26:15 +0000 (22:26 -0500)]
Update genbindings.sh

21 months agoMerge pull request #52 from TheBlueMatt/main v0.0.104.0
Matt Corallo [Mon, 20 Dec 2021 09:38:14 +0000 (09:38 +0000)]
Merge pull request #52 from TheBlueMatt/main

Correct non-default lld version passing

21 months agoCorrectly detect non-default LLD usage
Matt Corallo [Mon, 20 Dec 2021 06:13:55 +0000 (06:13 +0000)]
Correctly detect non-default LLD usage

Passing `-flto=ld*.lld-X` only appears to actually work on debian
testing. The correct argument for an alternative version of LLD is
`-flto=lld-X`.

21 months agoRevert "Correct LLD detection when a specific version is needed for X-lang LTO"
Matt Corallo [Mon, 20 Dec 2021 05:24:14 +0000 (05:24 +0000)]
Revert "Correct LLD detection when a specific version is needed for X-lang LTO"

This reverts commit b33cce1a6255564b88e0615eb5c7941bd7b15759.

21 months agoMerge pull request #51 from TheBlueMatt/main
Matt Corallo [Mon, 20 Dec 2021 05:03:40 +0000 (05:03 +0000)]
Merge pull request #51 from TheBlueMatt/main

0.0.104 Bindings Updates

21 months agoOnly test C++ demo in std mode, as it relies on threading support
Matt Corallo [Mon, 20 Dec 2021 01:20:06 +0000 (01:20 +0000)]
Only test C++ demo in std mode, as it relies on threading support

21 months agoUpdate git reference in checked-in Cargo.toml and CI branch
Matt Corallo [Sat, 18 Dec 2021 04:08:03 +0000 (04:08 +0000)]
Update git reference in checked-in Cargo.toml and CI branch

21 months agoUpdate auto-generated bindings
Matt Corallo [Sat, 18 Dec 2021 03:31:43 +0000 (03:31 +0000)]
Update auto-generated bindings

21 months agoCorrect LLD detection when a specific version is needed for X-lang LTO
Matt Corallo [Sat, 18 Dec 2021 02:45:15 +0000 (02:45 +0000)]
Correct LLD detection when a specific version is needed for X-lang LTO

Also use the full LLD specified as ld*.lld as it seems to be needed
on Linux with LLD 13 now.

21 months agoUpdate C++ bindings to latest upstream API
Matt Corallo [Sat, 18 Dec 2021 02:38:05 +0000 (02:38 +0000)]
Update C++ bindings to latest upstream API

21 months agoSupport Option<()> (and &Option<()>) incl conversion and printing
Matt Corallo [Sat, 18 Dec 2021 02:07:52 +0000 (02:07 +0000)]
Support Option<()> (and &Option<()>) incl conversion and printing

21 months agoDrop allow_wallclock_use feature and use std/no-std directly
Matt Corallo [Sat, 18 Dec 2021 02:06:00 +0000 (02:06 +0000)]
Drop allow_wallclock_use feature and use std/no-std directly

21 months agoMap new lightning::chain::keysinterface::KeyMaterial type as [u8; 32]
Matt Corallo [Sat, 18 Dec 2021 02:05:49 +0000 (02:05 +0000)]
Map new lightning::chain::keysinterface::KeyMaterial type as [u8; 32]

21 months agoExpose a 12-byte array instead of 10-byte as OnionV2 has changed
Matt Corallo [Sat, 18 Dec 2021 02:02:10 +0000 (02:02 +0000)]
Expose a 12-byte array instead of 10-byte as OnionV2 has changed

21 months agoMerge pull request #49 from TheBlueMatt/main v0.0.103.1
Matt Corallo [Tue, 30 Nov 2021 21:55:52 +0000 (21:55 +0000)]
Merge pull request #49 from TheBlueMatt/main

0.0.103.1

21 months agoSupport cross-language LTO on OSX (with upstream clang/lld)
Matt Corallo [Tue, 30 Nov 2021 16:19:08 +0000 (16:19 +0000)]
Support cross-language LTO on OSX (with upstream clang/lld)

21 months agoUpdate git commit in Cargo.toml to upstream bindings changes
Matt Corallo [Tue, 30 Nov 2021 15:40:46 +0000 (15:40 +0000)]
Update git commit in Cargo.toml to upstream bindings changes

21 months agoUpdate auto-generated bindings
Matt Corallo [Fri, 19 Nov 2021 20:12:13 +0000 (20:12 +0000)]
Update auto-generated bindings

21 months agoExpose a method to unmangle pointers in test builds
Matt Corallo [Mon, 29 Nov 2021 01:28:30 +0000 (01:28 +0000)]
Expose a method to unmangle pointers in test builds

This is used by Java bindings to compare all pointers against those
returned by its malloc wrap, possibly catching some simple
use-after-free or invalid pointer deref bugs.

It is exposed only when built as debug and defined in C headers
with `LDK_DEBUG_BUILD` defined.

21 months agoSupport `use self::...` statements as they are sometimes use for submodules
Matt Corallo [Wed, 24 Nov 2021 18:07:57 +0000 (18:07 +0000)]
Support `use self::...` statements as they are sometimes use for submodules

21 months agoSupport new c_bindings cfg flag to enable bindings-specific logic
Matt Corallo [Mon, 22 Nov 2021 02:06:37 +0000 (02:06 +0000)]
Support new c_bindings cfg flag to enable bindings-specific logic

21 months agoUpdate C/C++ demos to support new Logger API
Matt Corallo [Sun, 21 Nov 2021 18:46:53 +0000 (18:46 +0000)]
Update C/C++ demos to support new Logger API

21 months agoStop special-casing `Logger`, instead map fmt::Arguments to string
Matt Corallo [Sun, 21 Nov 2021 18:19:14 +0000 (18:19 +0000)]
Stop special-casing `Logger`, instead map fmt::Arguments to string

21 months agoCorrectly print lifetime parameters when printing generic arguments
Matt Corallo [Sun, 21 Nov 2021 18:17:35 +0000 (18:17 +0000)]
Correctly print lifetime parameters when printing generic arguments

21 months agoSupport traits and structs with lifetime bounds (which are ignored)
Matt Corallo [Fri, 29 Oct 2021 18:59:25 +0000 (18:59 +0000)]
Support traits and structs with lifetime bounds (which are ignored)

21 months agoSupport mapping MaybeReadable
Matt Corallo [Fri, 19 Nov 2021 20:04:36 +0000 (20:04 +0000)]
Support mapping MaybeReadable

This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/62

21 months agoAdd helper method on results to return `result_ok`
Matt Corallo [Fri, 19 Nov 2021 20:11:56 +0000 (20:11 +0000)]
Add helper method on results to return `result_ok`

This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/59

22 months agoMerge pull request #48 from TheBlueMatt/main v0.0.103.0
Matt Corallo [Wed, 3 Nov 2021 21:17:11 +0000 (21:17 +0000)]
Merge pull request #48 from TheBlueMatt/main

0.0.103.0 Updates

22 months agoUpdate upstream git tag
Matt Corallo [Wed, 3 Nov 2021 03:52:52 +0000 (03:52 +0000)]
Update upstream git tag

22 months agoUse a branch for bindings, as rustc prevents us from using main
Matt Corallo [Wed, 3 Nov 2021 03:39:09 +0000 (03:39 +0000)]
Use a branch for bindings, as rustc prevents us from using main

22 months agoUpdate auto-generated bindings
Matt Corallo [Mon, 1 Nov 2021 21:49:12 +0000 (21:49 +0000)]
Update auto-generated bindings

22 months agoUpdate C++ bindings to latest upstream API + test PaymentRetrier
Matt Corallo [Mon, 1 Nov 2021 03:38:31 +0000 (03:38 +0000)]
Update C++ bindings to latest upstream API + test PaymentRetrier

22 months agoAvoid double-`ObjOps::nonnull_ptr_to_inner` on options in some cases
Matt Corallo [Tue, 2 Nov 2021 05:58:14 +0000 (05:58 +0000)]
Avoid double-`ObjOps::nonnull_ptr_to_inner` on options in some cases

22 months agoSeparate logic to print `create_ownable_reference` types
Matt Corallo [Mon, 1 Nov 2021 18:35:30 +0000 (18:35 +0000)]
Separate logic to print `create_ownable_reference` types

These types aren't actually mapped in the same way as all other
types, so we really shouldn't be trying to use the same conversion
logic for both.

22 months agoImplement additional `Into<Str>` auto-conversion
Matt Corallo [Mon, 1 Nov 2021 18:35:43 +0000 (18:35 +0000)]
Implement additional `Into<Str>` auto-conversion

22 months agoTrack generic param count and print types in ptr-conversion
Matt Corallo [Mon, 1 Nov 2021 17:55:20 +0000 (17:55 +0000)]
Track generic param count and print types in ptr-conversion

This will allow rustc to prevent an issue where we accidentally
map `&&Object as *const _` to get a `*const Object`, instead
getting a pointer to a pointer.

22 months agoAdd constructor for tuple types where all contained types are known
Matt Corallo [Mon, 1 Nov 2021 04:33:09 +0000 (04:33 +0000)]
Add constructor for tuple types where all contained types are known

22 months agoCheck if types are understood before we map an impl block for them
Matt Corallo [Sun, 31 Oct 2021 23:32:55 +0000 (23:32 +0000)]
Check if types are understood before we map an impl block for them

22 months agoSupport `use crate::*` statements
Matt Corallo [Sun, 31 Oct 2021 18:13:00 +0000 (18:13 +0000)]
Support `use crate::*` statements

22 months agoMap `PaymentId` to a `[u8; 32]` like other Payemt* IDs.
Matt Corallo [Sun, 31 Oct 2021 18:11:10 +0000 (18:11 +0000)]
Map `PaymentId` to a `[u8; 32]` like other Payemt* IDs.

This should solve https://github.com/lightningdevkit/ldk-garbagecollected/issues/52

22 months agoSupport resolving non-trivial bounds from parent generic contexts
Matt Corallo [Sun, 31 Oct 2021 23:27:11 +0000 (23:27 +0000)]
Support resolving non-trivial bounds from parent generic contexts

22 months agoSupport converting Option<&[]> to C
Matt Corallo [Sun, 31 Oct 2021 23:14:41 +0000 (23:14 +0000)]
Support converting Option<&[]> to C

22 months agoimpl-Trait on in-crate types in a diff mod from the type definition
Matt Corallo [Sun, 31 Oct 2021 18:09:31 +0000 (18:09 +0000)]
impl-Trait on in-crate types in a diff mod from the type definition

22 months agoSupport printing lifetime generics on an impl-Trait block
Matt Corallo [Sun, 31 Oct 2021 18:07:47 +0000 (18:07 +0000)]
Support printing lifetime generics on an impl-Trait block

22 months agoSupport printing impl generics without an immediate bound
Matt Corallo [Sun, 31 Oct 2021 18:06:42 +0000 (18:06 +0000)]
Support printing impl generics without an immediate bound

(e.g. if you have `fn <A> ... where A: Trait` we'd not have printed
`<A>`)

This further supports printing impl generics with a reference to a
struct (not a trait), which we concretize with a regular reference.

22 months agoSwap --pretty=expanded with -Zunpretty=expanded
Matt Corallo [Sun, 31 Oct 2021 04:42:10 +0000 (04:42 +0000)]
Swap --pretty=expanded with -Zunpretty=expanded

Apparently the `--pretty` option was dropped in newer
rustc, see https://github.com/rust-lang/rust/pull/83491

23 months agoMerge pull request #46 from TheBlueMatt/main v0.0.102.0
Matt Corallo [Mon, 18 Oct 2021 20:43:06 +0000 (20:43 +0000)]
Merge pull request #46 from TheBlueMatt/main

0.0.102 Bindings Updates

23 months agoBump upstream git commit to latest
Matt Corallo [Sun, 17 Oct 2021 00:05:09 +0000 (00:05 +0000)]
Bump upstream git commit to latest

23 months agoUpdate auto-generated bindings
Matt Corallo [Sat, 16 Oct 2021 22:22:11 +0000 (22:22 +0000)]
Update auto-generated bindings

23 months agoUpdate C++ demo to latest upstream changes
Matt Corallo [Sat, 16 Oct 2021 22:16:44 +0000 (22:16 +0000)]
Update C++ demo to latest upstream changes

23 months agoHandle bitcoin::Transaction aliases instead of the full path
Matt Corallo [Sat, 16 Oct 2021 22:16:27 +0000 (22:16 +0000)]
Handle bitcoin::Transaction aliases instead of the full path

23 months agoCorrectly convert Option<Generic<Inner>> to C
Matt Corallo [Tue, 12 Oct 2021 02:09:03 +0000 (02:09 +0000)]
Correctly convert Option<Generic<Inner>> to C

23 months agoDrop stale manual path mappings for generic containers
Matt Corallo [Tue, 12 Oct 2021 02:07:34 +0000 (02:07 +0000)]
Drop stale manual path mappings for generic containers

These are all mapped as generic containers now so there's no need
for manual mapping entries.

23 months ago[net] Ensure we don't spin loop by keeping the poll write bit set
Matt Corallo [Sun, 3 Oct 2021 21:41:18 +0000 (21:41 +0000)]
[net] Ensure we don't spin loop by keeping the poll write bit set

Previously we'd not been unsetting POLLOUT, which will result in
us spin-loop'ing with ChannelManager_write_buffer_space_avail.

Further, we'd also not been unsetting the POLLIN bit, which would
result in us never pausing read as the SocketDescriptor API
requires us to.

23 months agoMerge pull request #45 from TheBlueMatt/main
Matt Corallo [Tue, 28 Sep 2021 01:54:37 +0000 (01:54 +0000)]
Merge pull request #45 from TheBlueMatt/main

Correct clone logic for `Str`.

23 months agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:07:41 +0000 (01:07 +0000)]
Update auto-generated bindings to latest upstream

23 months agoUpdate git commit dependency to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:08:14 +0000 (01:08 +0000)]
Update git commit dependency to latest upstream

23 months agoCorrect clone logic for `Str`. v0.0.101.3
Matt Corallo [Mon, 27 Sep 2021 23:24:43 +0000 (23:24 +0000)]
Correct clone logic for `Str`.

Previously we'd blindly clone'd the fields, which, if
`data_is_owned` is set, will always result in a a double-free.

Instead, we always clone the underlying bytes, setting
`data_is_owned` on the returned value since its likely the caller
wants to hold onto the string outside of the current context.

23 months agoMerge pull request #44 from TheBlueMatt/main v0.0.101.2
Matt Corallo [Sun, 26 Sep 2021 22:54:31 +0000 (22:54 +0000)]
Merge pull request #44 from TheBlueMatt/main

23 months agoDetect a type as clonable with an explicit `impl Clone`
Matt Corallo [Sun, 26 Sep 2021 06:19:07 +0000 (06:19 +0000)]
Detect a type as clonable with an explicit `impl Clone`

These stay `impl Clone` even after the pretty-print rustc pass so
we cannot only match `core::clone::Clone`

23 months agoFix races in demo C++ bindings that can hang valgrind in CI
Matt Corallo [Sat, 25 Sep 2021 21:43:38 +0000 (21:43 +0000)]
Fix races in demo C++ bindings that can hang valgrind in CI