1from typing import Union
2
3from .._utils import StreamType, deprecation_no_replacement
4from ._base import NameObject
5from ._data_structures import Destination
6
7
8class OutlineItem(Destination):
9 def write_to_stream(
10 self, stream: StreamType, encryption_key: Union[None, str, bytes] = None
11 ) -> None:
12 if encryption_key is not None: # deprecated
13 deprecation_no_replacement(
14 "the encryption_key parameter of write_to_stream", "5.0.0"
15 )
16 stream.write(b"<<\n")
17 for key in [
18 NameObject(x)
19 for x in ["/Title", "/Parent", "/First", "/Last", "/Next", "/Prev"]
20 if x in self
21 ]:
22 key.write_to_stream(stream)
23 stream.write(b" ")
24 value = self.raw_get(key)
25 value.write_to_stream(stream)
26 stream.write(b"\n")
27 key = NameObject("/Dest")
28 key.write_to_stream(stream)
29 stream.write(b" ")
30 value = self.dest_array
31 value.write_to_stream(stream)
32 stream.write(b"\n")
33 stream.write(b">>")