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