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 serde::{Deserialize, Deserializer};
|
||||||
|
|
||||||
use clone_to_owned::CloneToOwned;
|
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;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
pub trait CloneToOwned {
|
pub trait CloneToOwned {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
// BitTorrent peer protocol implementation: parsing, serialization etc.
|
||||||
|
//
|
||||||
|
// Can be used outside of librqbit.
|
||||||
|
|
||||||
pub mod extended;
|
pub mod extended;
|
||||||
|
|
||||||
use bincode::Options;
|
use bincode::Options;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
// Wrapper for sha1 libraries.
|
// Wrapper for sha1 libraries to be able to swap them easily,
|
||||||
// Sha1 computation is the majority of CPU usage of this library.
|
// e.g. to measure performance, or change implementations depending on platform.
|
||||||
// openssl seems 2-3x faster, so using it for now, but
|
//
|
||||||
// leaving the pure-rust impl here too. Maybe someday make them
|
// Sha1 computation is the majority of CPU usage of librqbit.
|
||||||
// runtime swappable or enabled with a feature.
|
// 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")]
|
#[cfg(feature = "sha1-openssl")]
|
||||||
pub type Sha1 = Sha1Openssl;
|
pub type Sha1 = Sha1Openssl;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue