-sub create {
- my ($class) = @_;
- my $state = BrotliDecoderCreateInstance();
- bless \$state, $class
-}
-
-sub DESTROY {
- my ($self) = @_;
- BrotliDecoderDestroyInstance($$self)
-}
-
-sub decompress {
- my ($self, $data) = @_;
- BrotliDecoderDecompressStream($$self, $data)
-}
-
-# Untested, probably not working
-sub set_dictionary {
- my ($self, $dict) = @_;
- BrotliDecoderSetCustomDictionary($$self, $dict)
+# 0.004001 has unbro with prototype $$
+# 0.004_002 renames it to unbro_given_size, and provides unbro with
+# prototype $;$ which calls:
+# * unbro_given_size when called with two arguments
+# * the OO interface when called with one argument
+sub unbro ($;$) {
+ my ($buffer, $decoded_size) = @_;
+ if (defined $decoded_size) {
+ return unbro_given_size($buffer, $decoded_size)
+ } else {
+ my $bro = IO::Uncompress::Brotli->create;
+ return $bro->decompress($buffer);
+ }