#![warn(
missing_docs,
missing_debug_implementations,
rustdoc::broken_intra_doc_links,
rust_2018_idioms,
unreachable_pub
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(doc)]
pub mod changelog;
mod utils;
pub use error::{Error, UnixTimeStampError};
use openssh_sftp_client_lowlevel as lowlevel;
pub use openssh_sftp_error as error;
use bytes::BytesMut;
mod unix_timestamp;
pub use unix_timestamp::UnixTimeStamp;
mod sftp;
use sftp::SftpHandle;
#[cfg(feature = "openssh")]
pub use sftp::{CheckOpensshConnection, OpensshSession};
pub use sftp::{Sftp, SftpAuxiliaryData};
#[cfg(feature = "openssh")]
pub use openssh;
mod options;
pub use options::SftpOptions;
mod queue;
use queue::MpscQueue;
mod tasks;
mod auxiliary;
use auxiliary::Auxiliary;
mod cache;
use cache::WriteEndWithCachedId;
mod handle;
use handle::OwnedHandle;
pub mod file;
pub mod fs;
pub mod metadata;
type Buffer = BytesMut;
type WriteEnd = lowlevel::WriteEnd<Buffer, MpscQueue, Auxiliary>;
type ReadEnd<R> = lowlevel::ReadEnd<R, Buffer, MpscQueue, Auxiliary>;
type SharedData = lowlevel::SharedData<Buffer, MpscQueue, Auxiliary>;
type Id = lowlevel::Id<Buffer>;
type Data = lowlevel::Data<Buffer>;
fn cancel_error() -> Error {
Error::BackgroundTaskFailure(&"read/flush task failed")
}