unit module OpenSSL::Bio; use OpenSSL::NativeLib; use NativeCall; class BIO_METHOD is repr('CStruct') { has int32 $.type; has Str $.name; } class BIO is repr('CPointer') { } our sub BIO_new_bio_pair(CArray[OpaquePointer], long, CArray[OpaquePointer], long --> int32) is native(&gen-lib) { ... } our sub BIO_free(OpaquePointer) is native(&gen-lib) { ... } our sub BIO_read(OpaquePointer, Blob, long --> int32) is native(&gen-lib) { ... } our sub BIO_write(OpaquePointer, Blob, long --> int32) is native(&gen-lib) { ... } our sub BIO_new_mem_buf(Blob, long --> OpaquePointer) is native(&gen-lib) { ... }