[package] name = "probabilistic_data_structures" version = "0.1.0" authors = [ "Mohamed Bana ", ] license-file = "./LICENSE" description = "Probabilistic data structures in Rust Lang." homepage = "https://github.com/banaio/probabilistic_data_structures.rs" repository = "https://github.com/banaio/probabilistic_data_structures.rs" readme = "README.md" edition = "2018" keywords = [ "bloom_filter", "count_min_sketch", "hyperloglog", "LSH", "pcsa", ] categories = [ "big_bata", "data_structures", "data_structures_DS", "data_structures(DS)", "probabilistic_DS", ] # "minhash", #categories = [ # "Probabilistic Counting with Stochastic Averaging (PCSA)", # "Locality-sensitive hashing (LHS)", # "Bloom filter", # "Count–min sketch", # "HyperLogLog", # "HyperLogLog++", # "MinHash", # "Cuckoo filter", # "Quotient filter", # "Treap", # "Skip list", # "SimHash", # "Rapidly-exploring random tree", # "Random tree", # "Random binary tree", # "Kinetic hanger", # "Kinetic heater", #] # default-run = "main" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # # warning: unused manifest key: term # [term] # verbose = false # whether cargo provides verbose output # color = 'always' # whether cargo colorizes output # # color = 'auto' # whether cargo colorizes output # https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section # https://doc.rust-lang.org/cargo/reference/profiles.html#profiles [profile.dev] opt-level = 0 # 0: no optimizations, also turns on cfg(debug_assertions). The opt-level setting controls the -C opt-level flag which controls the level of optimization. Higher optimization levels may produce faster runtime code at the expense of longer compiler times. Higher levels may also change and rearrange the compiled code which may make it harder to use with a debugger. The valid options are: - 0: no optimizations, also turns on cfg(debug_assertions) - 1: basic optimizations - 2: some optimizations - 3: all optimizations - "s": optimize for binary size - "z": optimize for binary size, but also turn off loop vectorization. It is recommended to experiment with different levels to find the right balance for your project. There may be surprising results, such as level 3 being slower than 2, or the "s" and "z" levels not being necessarily smaller. You may also want to reevaluate your settings over time as newer versions of rustc changes optimization behavior. See also Profile Guided Optimization for more advanced optimization techniques. debug = 2 # 0/1/2: The debug setting controls the -C debuginfo flag which controls the amount of debug information included in the compiled binary. The valid options are: 0 or false: no debug info at all, 1: line tables only, 2 or true: full debug info overflow-checks = true # true/false: The overflow-checks setting controls the -C overflow-checks flag which controls the behavior of runtime integer overflow. When overflow-checks are enabled, a panic will occur on overflow. debug-assertions = true # true/false: The debug-assertions setting controls the -C debug-assertions flag which turns cfg(debug_assertions) conditional compilation on or off. Debug assertions are intended to include runtime validation which is only available in debug/development builds. These may be things that are too expensive or otherwise undesirable in a release build. Debug assertions enables the debug_assert! macro in the standard library. incremental = true # true/false: The incremental setting controls the -C incremental flag which controls whether or not incremental compilation is enabled. Incremental compilation causes rustc to to save additional information to disk which will be reused when recompiling the crate, improving re-compile times. The additional information is stored in the target directory. panic = "unwind" # The panic setting controls the -C panic flag which controls which panic strategy to use. The valid options are: - "unwind": Unwind the stack upon panic. - "abort": Terminate the process upon panic. - When set to "unwind", the actual value depends on the default of the target platform. For example, the NVPTX platform does not support unwinding, so it always uses "abort". Tests, benchmarks, build scripts, and proc macros ignore the panic setting. The rustc test harness currently requires unwind behavior. See the panic-abort-tests unstable flag which enables abort behavior. Additionally, when using the abort strateg [profile.test] opt-level = 0 # 0: no optimizations, also turns on cfg(debug_assertions). The opt-level setting controls the -C opt-level flag which controls the level of optimization. Higher optimization levels may produce faster runtime code at the expense of longer compiler times. Higher levels may also change and rearrange the compiled code which may make it harder to use with a debugger. The valid options are: - 0: no optimizations, also turns on cfg(debug_assertions) - 1: basic optimizations - 2: some optimizations - 3: all optimizations - "s": optimize for binary size - "z": optimize for binary size, but also turn off loop vectorization. It is recommended to experiment with different levels to find the right balance for your project. There may be surprising results, such as level 3 being slower than 2, or the "s" and "z" levels not being necessarily smaller. You may also want to reevaluate your settings over time as newer versions of rustc changes optimization behavior. See also Profile Guided Optimization for more advanced optimization techniques. debug = 2 # 0/1/2: The debug setting controls the -C debuginfo flag which controls the amount of debug information included in the compiled binary. The valid options are: 0 or false: no debug info at all, 1: line tables only, 2 or true: full debug info overflow-checks = true # true/false: The overflow-checks setting controls the -C overflow-checks flag which controls the behavior of runtime integer overflow. When overflow-checks are enabled, a panic will occur on overflow. debug-assertions = true # true/false: The debug-assertions setting controls the -C debug-assertions flag which turns cfg(debug_assertions) conditional compilation on or off. Debug assertions are intended to include runtime validation which is only available in debug/development builds. These may be things that are too expensive or otherwise undesirable in a release build. Debug assertions enables the debug_assert! macro in the standard library. incremental = true # true/false: The incremental setting controls the -C incremental flag which controls whether or not incremental compilation is enabled. Incremental compilation causes rustc to to save additional information to disk which will be reused when recompiling the crate, improving re-compile times. The additional information is stored in the target directory. # `panic` setting is ignored for `test` profile # panic = "unwind" # The panic setting controls the -C panic flag which controls which panic strategy to use. The valid options are: - "unwind": Unwind the stack upon panic. - "abort": Terminate the process upon panic. - When set to "unwind", the actual value depends on the default of the target platform. For example, the NVPTX platform does not support unwinding, so it always uses "abort". Tests, benchmarks, build scripts, and proc macros ignore the panic setting. The rustc test harness currently requires unwind behavior. See the panic-abort-tests unstable flag which enables abort behavior. Additionally, when using the abort strateg [profile.bench] opt-level = 0 # 0: no optimizations, also turns on cfg(debug_assertions). The opt-level setting controls the -C opt-level flag which controls the level of optimization. Higher optimization levels may produce faster runtime code at the expense of longer compiler times. Higher levels may also change and rearrange the compiled code which may make it harder to use with a debugger. The valid options are: - 0: no optimizations, also turns on cfg(debug_assertions) - 1: basic optimizations - 2: some optimizations - 3: all optimizations - "s": optimize for binary size - "z": optimize for binary size, but also turn off loop vectorization. It is recommended to experiment with different levels to find the right balance for your project. There may be surprising results, such as level 3 being slower than 2, or the "s" and "z" levels not being necessarily smaller. You may also want to reevaluate your settings over time as newer versions of rustc changes optimization behavior. See also Profile Guided Optimization for more advanced optimization techniques. debug = 2 # 0/1/2: The debug setting controls the -C debuginfo flag which controls the amount of debug information included in the compiled binary. The valid options are: 0 or false: no debug info at all, 1: line tables only, 2 or true: full debug info overflow-checks = true # true/false: The overflow-checks setting controls the -C overflow-checks flag which controls the behavior of runtime integer overflow. When overflow-checks are enabled, a panic will occur on overflow. debug-assertions = true # true/false: The debug-assertions setting controls the -C debug-assertions flag which turns cfg(debug_assertions) conditional compilation on or off. Debug assertions are intended to include runtime validation which is only available in debug/development builds. These may be things that are too expensive or otherwise undesirable in a release build. Debug assertions enables the debug_assert! macro in the standard library. incremental = true # true/false: The incremental setting controls the -C incremental flag which controls whether or not incremental compilation is enabled. Incremental compilation causes rustc to to save additional information to disk which will be reused when recompiling the crate, improving re-compile times. The additional information is stored in the target directory. # `panic` setting is ignored for `bench` profile # panic = "unwind" # The panic setting controls the -C panic flag which controls which panic strategy to use. The valid options are: - "unwind": Unwind the stack upon panic. - "abort": Terminate the process upon panic. - When set to "unwind", the actual value depends on the default of the target platform. For example, the NVPTX platform does not support unwinding, so it always uses "abort". Tests, benchmarks, build scripts, and proc macros ignore the panic setting. The rustc test harness currently requires unwind behavior. See the panic-abort-tests unstable flag which enables abort behavior. Additionally, when using the abort strateg [profile.release] opt-level = 3 # 0: no optimizations, also turns on cfg(debug_assertions). The opt-level setting controls the -C opt-level flag which controls the level of optimization. Higher optimization levels may produce faster runtime code at the expense of longer compiler times. Higher levels may also change and rearrange the compiled code which may make it harder to use with a debugger. The valid options are: - 0: no optimizations, also turns on cfg(debug_assertions) - 1: basic optimizations - 2: some optimizations - 3: all optimizations - "s": optimize for binary size - "z": optimize for binary size, but also turn off loop vectorization. It is recommended to experiment with different levels to find the right balance for your project. There may be surprising results, such as level 3 being slower than 2, or the "s" and "z" levels not being necessarily smaller. You may also want to reevaluate your settings over time as newer versions of rustc changes optimization behavior. See also Profile Guided Optimization for more advanced optimization techniques. debug = 2 # 0/1/2: The debug setting controls the -C debuginfo flag which controls the amount of debug information included in the compiled binary. The valid options are: 0 or false: no debug info at all, 1: line tables only, 2 or true: full debug info overflow-checks = true # true/false: The overflow-checks setting controls the -C overflow-checks flag which controls the behavior of runtime integer overflow. When overflow-checks are enabled, a panic will occur on overflow. debug-assertions = true # true/false: The debug-assertions setting controls the -C debug-assertions flag which turns cfg(debug_assertions) conditional compilation on or off. Debug assertions are intended to include runtime validation which is only available in debug/development builds. These may be things that are too expensive or otherwise undesirable in a release build. Debug assertions enables the debug_assert! macro in the standard library. incremental = true # true/false: The incremental setting controls the -C incremental flag which controls whether or not incremental compilation is enabled. Incremental compilation causes rustc to to save additional information to disk which will be reused when recompiling the crate, improving re-compile times. The additional information is stored in the target directory. panic = "unwind" # The panic setting controls the -C panic flag which controls which panic strategy to use. The valid options are: - "unwind": Unwind the stack upon panic. - "abort": Terminate the process upon panic. - When set to "unwind", the actual value depends on the default of the target platform. For example, the NVPTX platform does not support unwinding, so it always uses "abort". Tests, benchmarks, build scripts, and proc macros ignore the panic setting. The rustc test harness currently requires unwind behavior. See the panic-abort-tests unstable flag which enables abort behavior. Additionally, when using the abort strateg # https://doc.rust-lang.org/rust-by-example/testing/dev_dependencies.html [dev-dependencies.pretty_assertions] version = "0.6.1" [dependencies] env_logger = "0.6.2" clap = "2.33" structopt = "0.2" term_size = "0.3.1" dialoguer = "0.4.0" [dependencies.log] version = "0.4" features = ["std"] # features = ["max_level_debug", "release_max_level_warn"] [dependencies.chrono] version = "0.4" features = [] [dependencies.better-panic] version = "0.1.2"