-sub create {
- my ($class) = @_;
- my $state = BrotliCreateState();
- bless \$state, $class
-}
-
-sub DESTROY {
- my ($self) = @_;
- BrotliDestroyState($$self)
-}
-
-sub decompress {
- my ($self, $data) = @_;
- BrotliDecompressStream($$self, $data)
-}
-
-# Untested, probably not working
-sub set_dictionary {
- my ($self, $dict) = @_;
- BrotliSetCustomDictionary($$self, $dict)
+# 0.004 has unbro with prototype $$
+# 0.004_001 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);
+ }