Files
guba-indicator/rust/target/debug/deps/libfnv-dba39155a26cac67.rmeta

76 lines
8.8 KiB
Plaintext
Raw Normal View History

rust
<EFBFBD>!#rustc 1.93.1 (01f6ddf75 2026-02-11)<29><02>ZF<5A>P<EFBFBD><50>v<EFBFBD><76><EFBFBD>]<5D>d9uu-4d8b4da6b4ab36bd<62><02><05><11><><EFBFBD>GȬx<C8AC>92X<32>l-5bed970bceb2abc5<63><02>.g<>:<3A><>Ld<4C><64>q<EFBFBD>T<EFBFBD>d-f090014afa110f38<33><02>L<><4C><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>E,<07>R<EFBFBD><52>-3d16dd14375d91ab<61><02><11>b';<3B><>ݕ<EFBFBD><DD95>+<2B><>74-cda84f9d48ee8a39<33>rustc_std_workspace_core<72><65><EFBFBD><EFBFBD><EFBFBD>7]<5D><><EFBFBD><1F>}^-d51aa419dcaa4806<30> hashbrown<77>\<5C><01><><EFBFBD>Y8 <0A> <0B>9!~-828ad423d679028a<38>rustc_std_workspace_alloc<6F>)Z<7F><5A>T+@<15>U<EFBFBD><15><><EFBFBD>-456872f450a959d9<64>
std_detect<EFBFBD><EFBFBD><<03>dpܞ.P\aܘ<61>L-20f4fe7d6fc49ef1<66>rustc_demangle<6C> $<24><><EFBFBD><EFBFBD><EFBFBD>.<2E>u
@<40><>!-8707d0f6cef74754<35>windows_targets<74>aG<61>"T<>S<EFBFBD><53><02><>i-a000ab9e204fd71e<31>cfg_if<69>S]<5D><><EFBFBD><EFBFBD>]<5D><>8RH<52><48>-be85b4d8c54eea3b<33><02> <0C><08><><EFBFBD><EFBFBD>N<EFBFBD>}<7D>]<5D><>y^-a8029966e34624a3<61><02>,<2C><02><<3C><02>,<2C>|<7C><00><><02><<3C><02><<3C><02>,<2C>|<7C><00><><02>4<><02><<3C><02>,<2C>|<7C><00><>BuildHasherDefault<6C><74><EFBFBD><02>5<02>31/1<02>$<24><02>$<24><02> FnvHasher<65>

<02> >with_key<65>finish<73>write<74>FnvBuildHasher<65>
FnvHashMap<EFBFBD>K<>V<>
FnvHashSet<EFBFBD><02>   <02>

 <01> <02>
<EFBFBD>3<EFBFBD><EFBFBD>R<EFBFBD><EFBFBD><02>b<01>  

<02>
<02>b<01><>

 #<01> .5<
<02><02><<3C><02><02><02><02>4<><02>b<01><06><><02>b<02><<3C><01><02><<3C><01>  <09><00><><00>HE An implementation of the [FowlerNollVo hash function][chongo].<2E>I<02>dM ## About<75>Z<02><00>^JG The FNV hash function is a custom `Hasher` implementation that is more<72><00><>$! efficient for smaller hash keys.<2E><1C><02><00><>NK [The Rust FAQ states that][faq] while the default `Hasher` implementation,<2C><00><>NK SipHash, is good in many cases, it is notably slower than other algorithms<6D><00><>MJ with short keys, such as when you have a map of integers to other values.<2E><00><>>; In cases like these, [FNV is demonstrably faster][graphs].<2E><1C><02><00><>FC Its disadvantages are that it performs badly on larger inputs, and<6E><00><>LI provides no protection against collision attacks, where a malicious user<65><00><>GD can craft specific keys designed to slow a hasher down. Thus, it is<69><00><>MJ important to profile your program to ensure that you are using small hash<73><00><>LI keys, and be certain that your program could not be exposed to malicious<75><00><>0- inputs (including being a networked server).<2E><1C><02><00><>A> The Rust compiler itself uses FNV, as it is not worried about<75><00><>MJ denial-of-service attacks, and can assume that its inputs are going to be<62><00><>'$ small—a perfect use case for FNV.<2E><1C><02><02><1C>  <0C> <00>
## Using FNV in a `HashMap`
The `FnvHashMap` type alias is the easiest way to use the standard librarys
`HashMap` with FNV.
```rust
use fnv::FnvHashMap;
let mut map = FnvHashMap::default();
map.insert(1, "one");
map.insert(2, "two");
map = FnvHashMap::with_capacity_and_hasher(10, Default::default());
map.insert(1, "one");
map.insert(2, "two");
```
Note, the standard librarys `HashMap::new` and `HashMap::with_capacity`
are only implemented for the `RandomState` hasher, so using `Default` to
get the hasher is the next best option.
## Using FNV in a `HashSet`
Similarly, `FnvHashSet` is a type alias for the standard librarys `HashSet`
with FNV.
```rust
use fnv::FnvHashSet;
let mut set = FnvHashSet::default();
set.insert(1);
set.insert(2);
set = FnvHashSet::with_capacity_and_hasher(10, Default::default());
set.insert(1);
set.insert(2);
```
<EFBFBD><01><01><> <09><01><> <09><1C><02><00><>B? [chongo]: http://www.isthe.com/chongo/tech/comp/fnv/index.html<6D><00><>OL [faq]: https://www.rust-lang.org/en-US/faq.html#why-are-rusts-hashmaps-slow<6F><00><>63 [graphs]: https://cglab.ca/~abeinges/blah/hash-rs/<2F>
<02><13><02><13><02><02><13><02><02> <02>b<01><02>b<02>2<01><02>E<01>  <04><><13><04><>'  <05><>$22EE<13><00><>>; An implementation of the FowlerNollVo hash function.<2E><1C><02><00><>?< See the [crate documentation](index.html) for more details.<2E>L<><00>
<EFBFBD>3<EFBFBD><EFBFBD>R<EFBFBD><EFBFBD> <02>
<EFBFBD> <13>1<02>
<EFBFBD> 

<1C>

<00>
Ե<00> <02><00><><<3C><01>   t<><00> <00><>&<00><><9 Create an FNV hasher starting with a state corresponding<6E><00><> to the hash `key`.<2E>D<EFBFBD><02>
<EFBFBD>  key<65><1C><00><><00> <02>b<02>b<00><>4<> <1A> <00>
 <0C> $<24><00><>!,<2C> <1B>  
 <0C> $<24>bytes<65>,<2C><00><><00><>&# A builder for default FNV hashers.<2E>t<EFBFBD><02>b<02>b<02>b<01><02>b<02><02>a MqA<71><41><EFBFBD><01> ̒<00><>+( A `HashMap` using a default FNV hasher.<2E><02><1C> <0C> <0C>8<02><<3C> <0C>7<02>,<2C><00><>T<><01><01><02><><01> <0C><02><><01> <0C><01><01><02><01>base<73><01><00>!<21><>+&<26><01>(<01>(<01>&PRJL<00><><00><>+( A `HashSet` using a default FNV hasher.<2E><02><1C> <0C> <0C>8<02><<3C> <0C>7<02>,<2C><00><>T<><02><02><><02> <0C><01> <01> <02><01> <01>'<01> <00><>nO<6E>"<22><><01>*<01>&68<17><13><17><13> <0C><13>4http://www.isthe.com/chongo/tech/comp/fnv/index.html<6D>
index.html<6D>FNV is demonstrably faster<65>(https://cglab.ca/~abeinges/blah/hash-rs/<2F> FowlerNollVo hash function<6F>crate documentation<6F><01>*The Rust FAQ states that<61>(https://www.rust-lang.org/en-US/faq.html<6D><01>*<01>*<01>*<01>+<01>+<01>+<01>*<01>*<01>+<01>*<01>*<01>+<01>+<01>+<01>+<00><>p<EFBFBD>`:.<2E><0F><><EFBFBD><7F>we<77>+<2B><>7m<37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><h<><68>k.<2E><>4,<03><>@<40>}<7D>f.<2E>El<45><6C><1C><>K^<14>$P<>}<7D>6<EFBFBD>@<40>:)<29><>@<40><>6<EFBFBD><36><EFBFBD>ƣ<12>ϗ<EFBFBD><1D>r<EFBFBD><72>,\<5C><>#_k<5F>Ӽ3<D3BC>
<EFBFBD><EFBFBD><EFBFBD>|<10><>cC<63>?<3F>(<28><>7<EFBFBD><37><EFBFBD>a<EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD>M<EFBFBD>Zd<5A>bG<><47><0F><>pswV<77>J<EFBFBD>0<EFBFBD><30>ǮD R&$<24><>7E<37><45>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>›?`<60><EFBFBD><02><><EFBFBD><EFBFBD><10>W<EFBFBD>37~<7E>o<EFBFBD><6F>#m|Ρ<1E><><EFBFBD>ګ<1E>2A<32> ̹<15>[<00><00><10><10><11><11>+<12><14>a<00><00>%  <18>A<10><10><00><00><00>A<12>x<00>Uosu|<0F><0F><0F><0F><0F><0F>k<10><10><10><11><11>&<12><13><14><14><14><14>qy<00><0F><00><0F>=n<10><00>|<00>+<12>t<13> <14><14><14><14>H<10><10><10><10> <11><11>t<12><12><14><14>B<10><10><10><10><11><11> h<12>y<13> <14><14>J<10><10><10><10><11><11>x<12><12><00>B<10><00><00><00>Bb<10><00><00><00>Bp<00><00><00>/5h<00><00><00><00><00>|<12>;<00><00>XL\_fjnrvz~<03><03><03><03><03><03><03><03><03><03><03><03><03> ")-1Z<00><00><11><00><00><13><13><13><13><02> <00><>p<EFBFBD>`:.<2E><><EFBFBD>m<>i<>(<1C><1B><1B><1C><1C>ODHT @<02><><00>f.<2E>El<45><6C>6<><36><EFBFBD>ƣ<12>
<00>0<EFBFBD><30>ǮD <10>W<EFBFBD>37Ӽ3<D3BC>
<EFBFBD><EFBFBD><EFBFBD> ~<7E>o<EFBFBD><6F>#m|<00><>a<EFBFBD>S<EFBFBD><53><EFBFBD>G<><47><0F><00>?<3F>(<28><>7<EFBFBD><1C><>K^<14><00><>+<2B><><EFBFBD><EFBFBD><EFBFBD><00><>p<EFBFBD>`:.<2E>$P<>}<7D>6<EFBFBD>@4,<03><>@<40>},\<5C><>#_k<5F> <00>M<EFBFBD>Zd<5A>b|<10><>cC<00>:)<29><>@<40><> <00><><EFBFBD><02><><EFBFBD><EFBFBD>Ρ<1E><><EFBFBD>ګ<00><>k.<2E><>R&$<24><>7E<1E>2A<32> ̹<00>+<2B><>7m<37><6D><00>pswV<77>J<00><><EFBFBD><EFBFBD><EFBFBD><h<0F><><EFBFBD><7F>weϗ<><1D>r<EFBFBD><72> <00><>›?`<60><><00><><EFBFBD><EFBFBD><EFBFBD>bs<1B>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>><3E>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>La<4C><61><EFBFBD>rnx >J<04><>!Z<><5A>Y<EFBFBD>U
<EFBFBD>"<22><><EFBFBD><EFBFBD>\<5C>q%4<><34>2<EFBFBD>qp<71><70><EFBFBD><EFBFBD><EFBFBD>bs<1B>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>WC:\Users\dxzq\.cargo\registry\src\mirrors.ustc.edu.cn-38d0e5eb5da2abae\fnv-1.0.7\lib.rs<72> 2<><17><>L(Y<><59><EFBFBD><EFBFBD>y<EFBFBD> <09><18><1B>Cn<43>X-<2D>0<EFBFBD><30><EFBFBD>&<00><><01><><01>I K%OON?GMHNM1BN('O%DKI(O
%DCP7+(-*.?@' &A-()#*5
!'9,;,5 !$/,>-? 45555556789:677777789:;<6789:;<=>?@ABCDF89:;<=>?@ABCDEFH6789:;<=>?@ABD89:;<=>?@ABCDF689;DDDDDDDDDDDDDD=?=?=??A?A?A<>DFDFJVXVXbdIHPVjecjQRYH``bP_HS[XZcidgihmlmu`\`_U^OJz}LNgSWQd]jEFIHHEFIHHLQXP`P`P`P`EEBE$+<03><03> <03> <03><03><03>/<2F>x<EFBFBD><78>=>M<>B<EFBFBD>S<EFBFBD><<3C><00>x86_64-pc-windows-msvc<76><63>b<EFBFBD><62>h<EFBFBD><68>{<16><><EFBFBD> <0B><><EFBFBD>fnv<6E>-dba39155a26cac67<36><37><EFBFBD>p<EFBFBD>`:.<2E> <0A>C<05><02><00>#<00> !  K62::442<(($4   <$  : ({<01> rust-end-file