1 /* GNU Mailutils -- a suite of utilities for electronic mail
2    Copyright (C) 2020-2021 Free Software Foundation, Inc.
3 
4    This library is free software; you can redistribute it and/or modify
5    it under the terms of the GNU Lesser General Public License as published by
6    the Free Software Foundation; either version 3, or (at your option)
7    any later version.
8 
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public License
15    along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>. */
16 
17 #ifndef _MAILUTILS_SYS_TEMP_STREAM_H
18 #define _MAILUTILS_SYS_TEMP_STREAM_H
19 
20 #include <mailutils/sys/stream.h>
21 #include <mailutils/sys/memory_stream.h>
22 #include <mailutils/sys/temp_file_stream.h>
23 
24 struct _mu_temp_stream
25 {
26   union
27   {
28     struct _mu_stream stream;
29     struct _mu_memory_stream mem;
30     struct _mu_temp_file_stream file;
31   } s;
32   size_t max_size;
33   int (*saved_write) (struct _mu_stream *, const char *, size_t, size_t *);
34 };
35 #endif
36