secp256k1-sys 0.1.1

FFI for Pieter Wuille's `libsecp256k1` library.
Documentation
139,149d138
< secp256k1_context* secp256k1_context_create(unsigned int flags) {
<     size_t const prealloc_size = secp256k1_context_preallocated_size(flags);
<     secp256k1_context* ctx = (secp256k1_context*)checked_malloc(&default_error_callback, prealloc_size);
<     if (EXPECT(secp256k1_context_preallocated_create(ctx, flags) == NULL, 0)) {
<         free(ctx);
<         return NULL;
<     }
< 
<     return ctx;
< }
< 
164,174d152
< secp256k1_context* secp256k1_context_clone(const secp256k1_context* ctx) {
<     secp256k1_context* ret;
<     size_t prealloc_size;
< 
<     VERIFY_CHECK(ctx != NULL);
<     prealloc_size = secp256k1_context_preallocated_clone_size(ctx);
<     ret = (secp256k1_context*)checked_malloc(&ctx->error_callback, prealloc_size);
<     ret = secp256k1_context_preallocated_clone(ctx, ret);
<     return ret;
< }
< 
183,189d160
< void secp256k1_context_destroy(secp256k1_context* ctx) {
<     if (ctx != NULL) {
<         secp256k1_context_preallocated_destroy(ctx);
<         free(ctx);
<     }
< }
< 
206,215d176
< }
< 
< secp256k1_scratch_space* secp256k1_scratch_space_create(const secp256k1_context* ctx, size_t max_size) {
<     VERIFY_CHECK(ctx != NULL);
<     return secp256k1_scratch_create(&ctx->error_callback, max_size);
< }
< 
< void secp256k1_scratch_space_destroy(const secp256k1_context *ctx, secp256k1_scratch_space* scratch) {
<     VERIFY_CHECK(ctx != NULL);
<     secp256k1_scratch_destroy(&ctx->error_callback, scratch);