diff options
Diffstat (limited to 'msg_socket2/src/lib.rs')
-rw-r--r-- | msg_socket2/src/lib.rs | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/msg_socket2/src/lib.rs b/msg_socket2/src/lib.rs index 9bb2526..00500bb 100644 --- a/msg_socket2/src/lib.rs +++ b/msg_socket2/src/lib.rs @@ -1,36 +1,39 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 // Copyright 2020, Alyssa Ross -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the <organization> nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -mod de; +//! A library for sending messages over Unix domain sockets, including +//! file descriptors. +//! +//! The serialization and deserialization interface is a wrapper on +//! top of bincode and serde. `Serializer` and `Deserializer` are +//! very large interfaces, so they have so far only been implemented +//! on-demand. But, implementing other methods as required should be +//! extremely straightforward to do based on the methods that have +//! already been implemented. +//! +//! In addition to serialization and deserialization, the library +//! provides a `Socket` type. This is a wrapper around a Unix +//! SOCK_SEQPACKET socket that automatically serializes outgoing +//! messages, and deserializes incoming ones. This might be changed +//! to `UnixStream`, to remove the dependency on `sys_util`. + +// TODO: document macros. + +pub mod de; mod error; +mod fd; pub mod ser; mod socket; pub(crate) use ser::FdSerializerImpl; -pub use de::{DeserializeWithFds, DeserializerWithFds}; +pub use de::{DeserializeWithFds, Deserializer, DeserializerWithFds}; pub use error::Error; -pub use ser::{FdSerializer, Serialize, SerializeWithFds, Serializer}; +use fd::Fd; +pub use msg_socket2_derive::{DeserializeWithFds, SerializeWithFds}; +pub use ser::{FdSerializer, SerializeWithFds, Serializer}; pub use socket::Socket; + +// Don't use ser and de re-exports, because they import from +// serde::ser and serde::de, so won't pick up derives. +pub use serde::{Deserialize, Serialize}; |