/* * Copyright (c) 2021, Matthew Olsson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace PDF { class Filter { public: static ErrorOr decode(ReadonlyBytes bytes, FlyString const& encoding_type); private: static ErrorOr decode_ascii_hex(ReadonlyBytes bytes); static ErrorOr decode_ascii85(ReadonlyBytes bytes); static ErrorOr decode_lzw(ReadonlyBytes bytes); static ErrorOr decode_flate(ReadonlyBytes bytes); static ErrorOr decode_run_length(ReadonlyBytes bytes); static ErrorOr decode_ccitt(ReadonlyBytes bytes); static ErrorOr decode_jbig2(ReadonlyBytes bytes); static ErrorOr decode_dct(ReadonlyBytes bytes); static ErrorOr decode_jpx(ReadonlyBytes bytes); static ErrorOr decode_crypt(ReadonlyBytes bytes); }; }