1 // Take a look at the license at the top of the repository in the LICENSE file.
2 
3 //! # Rust GIO bindings
4 //!
5 //! This library contains safe Rust bindings for [GIO](https://developer.gnome.org/gio/).
6 //! It is a part of [gtk-rs](https://gtk-rs.org/).
7 //!
8 //! GIO 2.48 is the lowest supported version for the underlying library.
9 
10 #![cfg_attr(feature = "dox", feature(doc_cfg))]
11 #![allow(clippy::type_complexity)]
12 #![allow(clippy::too_many_arguments)]
13 #![allow(clippy::missing_safety_doc)]
14 #![allow(clippy::upper_case_acronyms)]
15 
16 pub use ffi;
17 pub use glib;
18 
19 mod app_info;
20 mod application;
21 #[cfg(test)]
22 mod cancellable;
23 mod converter;
24 mod data_input_stream;
25 mod dbus;
26 pub use self::dbus::*;
27 mod dbus_connection;
28 pub use self::dbus_connection::{
29     ActionGroupExportId, FilterId, MenuModelExportId, RegistrationId, SignalSubscriptionId,
30     WatcherId,
31 };
32 mod dbus_message;
33 mod dbus_method_invocation;
34 #[cfg(any(all(not(windows), not(target_os = "macos")), feature = "dox"))]
35 mod desktop_app_info;
36 mod error;
37 mod file;
38 mod file_attribute_matcher;
39 pub use crate::file_attribute_matcher::FileAttributematcherIter;
40 mod file_enumerator;
41 mod file_info;
42 mod flags;
43 mod inet_address;
44 pub use crate::inet_address::InetAddressBytes;
45 mod inet_socket_address;
46 mod io_stream;
47 pub use crate::io_stream::IOStreamAsyncReadWrite;
48 mod input_stream;
49 pub use crate::input_stream::{InputStreamAsyncBufRead, InputStreamRead};
50 mod list_store;
51 #[cfg(test)]
52 mod memory_input_stream;
53 #[cfg(test)]
54 mod memory_output_stream;
55 mod output_stream;
56 pub use crate::output_stream::OutputStreamWrite;
57 mod pollable_input_stream;
58 pub use crate::pollable_input_stream::InputStreamAsyncRead;
59 mod pollable_output_stream;
60 pub use crate::pollable_output_stream::OutputStreamAsyncWrite;
61 mod resource;
62 pub use crate::resource::{compile_resources, resources_register_include_impl};
63 mod settings;
64 pub use crate::settings::BindingBuilder;
65 mod socket;
66 mod subprocess;
67 mod subprocess_launcher;
68 mod threaded_socket_service;
69 #[cfg(any(unix, feature = "dox"))]
70 mod unix_fd_list;
71 #[cfg(any(unix, feature = "dox"))]
72 mod unix_input_stream;
73 #[cfg(any(unix, feature = "dox"))]
74 #[cfg(any(feature = "v2_54", feature = "dox"))]
75 mod unix_mount_entry;
76 #[cfg(any(unix, feature = "dox"))]
77 #[cfg(any(feature = "v2_54", feature = "dox"))]
78 mod unix_mount_point;
79 #[cfg(any(unix, feature = "dox"))]
80 mod unix_output_stream;
81 #[cfg(any(unix, feature = "dox"))]
82 mod unix_socket_address;
83 
84 #[cfg(test)]
85 mod test_util;
86 
87 pub use crate::auto::functions::*;
88 pub use crate::auto::*;
89 
90 pub mod prelude;
91 
92 #[allow(clippy::wrong_self_convention)]
93 #[allow(clippy::new_ret_no_self)]
94 #[allow(clippy::let_and_return)]
95 #[allow(unused_imports)]
96 mod auto;
97 
98 mod gio_future;
99 pub use crate::gio_future::*;
100 
101 #[macro_use]
102 pub mod subclass;
103 mod read_input_stream;
104 pub use crate::read_input_stream::ReadInputStream;
105 mod write_output_stream;
106 pub use crate::write_output_stream::WriteOutputStream;
107 mod tls_connection;
108 
109 pub mod task;
110 
111 #[cfg(target_family = "windows")]
112 mod win32_input_stream;
113 #[cfg(target_family = "windows")]
114 pub use self::win32_input_stream::{Win32InputStream, NONE_WIN32_INPUT_STREAM};
115 
116 #[cfg(target_family = "windows")]
117 mod win32_output_stream;
118 #[cfg(target_family = "windows")]
119 pub use self::win32_output_stream::{Win32OutputStream, NONE_WIN32_OUTPUT_STREAM};
120