Add more docs
This commit is contained in:
parent
0170b19fcd
commit
adb98a2d89
4 changed files with 23 additions and 5 deletions
|
|
@ -1,3 +1,8 @@
|
|||
// This crate used for making working with &[u8] or Vec<u8> generic in other parts of librqbit,
|
||||
// for nicer display of binary data etc.
|
||||
//
|
||||
// Not useful outside of librqbit.
|
||||
|
||||
use serde::{Deserialize, Deserializer};
|
||||
|
||||
use clone_to_owned::CloneToOwned;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
// These are helpers for objects that can be borrowed, but can be made owned while changing the type.
|
||||
// The difference between e.g. Cow and CloneToOwned, is that we can implement it recursively for owned types.
|
||||
//
|
||||
// E.g. HashMap<&str, &str> can be converted to HashMap<String, String>.
|
||||
//
|
||||
// This lets us express types like TorrentMetaInfo<&[u8]> for zero-copy metadata about a bencode buffer in memory,
|
||||
// but to have one-line conversion for it into TorrentMetaInfo<Vec<u8>> so that we can store it later somewhere.
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub trait CloneToOwned {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// BitTorrent peer protocol implementation: parsing, serialization etc.
|
||||
//
|
||||
// Can be used outside of librqbit.
|
||||
|
||||
pub mod extended;
|
||||
|
||||
use bincode::Options;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
// Wrapper for sha1 libraries.
|
||||
// Sha1 computation is the majority of CPU usage of this library.
|
||||
// openssl seems 2-3x faster, so using it for now, but
|
||||
// leaving the pure-rust impl here too. Maybe someday make them
|
||||
// runtime swappable or enabled with a feature.
|
||||
// Wrapper for sha1 libraries to be able to swap them easily,
|
||||
// e.g. to measure performance, or change implementations depending on platform.
|
||||
//
|
||||
// Sha1 computation is the majority of CPU usage of librqbit.
|
||||
// openssl is 2-3x faster than rust's sha1.
|
||||
// system library is the best choice probably (it's the default anyway).
|
||||
|
||||
#[cfg(feature = "sha1-openssl")]
|
||||
pub type Sha1 = Sha1Openssl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue