unit module OpenSSL::Version;

use NativeCall;
use OpenSSL::NativeLib;

our int32 constant VERSION     = 0;
our int32 constant CFLAGS      = 1;
our int32 constant BUILT_ON    = 2;
our int32 constant PLATFORM    = 3;
our int32 constant DIR         = 4;
our int32 constant ENGINES_DIR = 5;

our sub version_num returns Int {
    my sub OpenSSL_version_num returns ulong is native(&gen-lib) { ... }
    return try { OpenSSL_version_num() } // 0;
}

our sub version(int32 $type = VERSION) returns Str {
    my sub OpenSSL_version(int32) returns Str is native(&gen-lib) { ... }
    return try { OpenSSL_version($type) } // '';
}
