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