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 initable;
49 mod input_stream;
50 pub use crate::input_stream::{InputStreamAsyncBufRead, InputStreamRead};
51 mod list_store;
52 #[cfg(test)]
53 mod memory_input_stream;
54 #[cfg(test)]
55 mod memory_output_stream;
56 mod output_stream;
57 pub use crate::output_stream::OutputStreamWrite;
58 mod pollable_input_stream;
59 pub use crate::pollable_input_stream::InputStreamAsyncRead;
60 mod pollable_output_stream;
61 pub use crate::pollable_output_stream::OutputStreamAsyncWrite;
62 mod resource;
63 pub use crate::resource::{compile_resources, resources_register_include_impl};
64 mod settings;
65 pub use crate::settings::BindingBuilder;
66 mod socket;
67 mod subprocess;
68 mod subprocess_launcher;
69 mod threaded_socket_service;
70 #[cfg(any(unix, feature = "dox"))]
71 mod unix_fd_list;
72 #[cfg(any(unix, feature = "dox"))]
73 mod unix_input_stream;
74 #[cfg(any(unix, feature = "dox"))]
75 #[cfg(any(feature = "v2_54", feature = "dox"))]
76 mod unix_mount_entry;
77 #[cfg(any(unix, feature = "dox"))]
78 #[cfg(any(feature = "v2_54", feature = "dox"))]
79 mod unix_mount_point;
80 #[cfg(any(unix, feature = "dox"))]
81 mod unix_output_stream;
82 #[cfg(any(unix, feature = "dox"))]
83 mod unix_socket_address;
84 
85 #[cfg(test)]
86 mod test_util;
87 
88 pub use crate::auto::functions::*;
89 pub use crate::auto::*;
90 
91 pub mod prelude;
92 
93 #[allow(clippy::wrong_self_convention)]
94 #[allow(clippy::new_ret_no_self)]
95 #[allow(clippy::let_and_return)]
96 #[allow(unused_imports)]
97 mod auto;
98 
99 mod gio_future;
100 pub use crate::gio_future::*;
101 
102 #[macro_use]
103 pub mod subclass;
104 mod read_input_stream;
105 pub use crate::read_input_stream::ReadInputStream;
106 mod write_output_stream;
107 pub use crate::write_output_stream::WriteOutputStream;
108 mod tls_connection;
109 
110 pub mod task;
111 
112 #[cfg(target_family = "windows")]
113 mod win32_input_stream;
114 #[cfg(target_family = "windows")]
115 pub use self::win32_input_stream::{Win32InputStream, NONE_WIN32_INPUT_STREAM};
116 
117 #[cfg(target_family = "windows")]
118 mod win32_output_stream;
119 #[cfg(target_family = "windows")]
120 pub use self::win32_output_stream::{Win32OutputStream, NONE_WIN32_OUTPUT_STREAM};
121