diff --git a/CODE_OF_CONDUCT/index.html b/CODE_OF_CONDUCT/index.html index 5317b634..812490fa 100644 --- a/CODE_OF_CONDUCT/index.html +++ b/CODE_OF_CONDUCT/index.html @@ -1261,11 +1261,11 @@

Attribution

Last update: - May 30, 2024 + May 31, 2024
Created: - May 30, 2024 + May 31, 2024
diff --git a/CONTRIBUTING/index.html b/CONTRIBUTING/index.html index 14b7de3e..21ac1cbb 100644 --- a/CONTRIBUTING/index.html +++ b/CONTRIBUTING/index.html @@ -1066,11 +1066,11 @@

How to submit changes

Last update: - May 30, 2024 + May 31, 2024
Created: - May 30, 2024 + May 31, 2024
diff --git a/LICENSE/index.html b/LICENSE/index.html index b89ec928..d9b946d8 100644 --- a/LICENSE/index.html +++ b/LICENSE/index.html @@ -925,11 +925,11 @@

LICENSE

Last update: - May 30, 2024 + May 31, 2024
Created: - May 30, 2024 + May 31, 2024
diff --git a/index.html b/index.html index bdf55248..031cca2f 100644 --- a/index.html +++ b/index.html @@ -1129,7 +1129,7 @@

Rust

# Cargo.toml
 
 [dependencies]
-bitbazaar = "0.0.51"
+bitbazaar = "0.0.52"
 

Usage

Please see the documentation for details.

@@ -1148,11 +1148,11 @@

Issues

Last update: - May 30, 2024 + May 31, 2024
Created: - May 30, 2024 + May 31, 2024
diff --git a/js_ref/classes/log.GlobalLog.html b/js_ref/classes/log.GlobalLog.html index 001cb1d0..31cc651b 100644 --- a/js_ref/classes/log.GlobalLog.html +++ b/js_ref/classes/log.GlobalLog.html @@ -1,4 +1,4 @@ -GlobalLog | bitbazaar

Class GlobalLog

Hierarchy

  • GlobalLog

Constructors

constructor +GlobalLog | bitbazaar

Class GlobalLog

Hierarchy

  • GlobalLog

Constructors

Properties

Constructors

  • Create the global logger, must setup oltp (http), console can be optionally setup and will just print logs.

    -

    Parameters

    • __namedParameters: {
          console?: ConsoleArgs;
          otlp: OltpArgs;
      }
      • Optional console?: ConsoleArgs
      • otlp: OltpArgs

    Returns GlobalLog

Properties

console: null | ConsoleArgs
logger: Logger
loggerProvider: LoggerProvider
meterProvider: MeterProvider
oltp: OltpArgs
orig_console_fns: ConsoleFns
tracer: Tracer
tracerProvider: WebTracerProvider

Methods

  • Parameters

    • message: string
    • attrs: any[]

    Returns string

  • Parameters

    • severityText: LogLevel
    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log a debug message.

    -

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log an error message.

    -

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log an info message.

    -

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Get a new Meter instance to record metrics with.

    +

    Parameters

    • __namedParameters: {
          console?: ConsoleArgs;
          otlp: OltpArgs;
      }
      • Optional console?: ConsoleArgs
      • otlp: OltpArgs

    Returns GlobalLog

Properties

console: null | ConsoleArgs
logger: Logger
loggerProvider: LoggerProvider
meterProvider: MeterProvider
oltp: OltpArgs
orig_console_fns: ConsoleFns
tracer: Tracer
tracerProvider: WebTracerProvider

Methods

  • Parameters

    • message: string
    • attrs: any[]

    Returns string

  • Parameters

    • severityText: LogLevel
    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log a debug message.

    +

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log an error message.

    +

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Log an info message.

    +

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Get a new Meter instance to record metrics with.

    Parameters

    • name: string
    • opts: MeterOptions | {
          version?: string;
      } = {}

    Returns Meter

    Example

    const meter = globalLog.getMeter("example-meter");
    const counter = meter.createCounter('metric_name');
    counter.add(10, { 'key': 'value' });
    -
  • Log a warning message.

    -

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Run a sync callback inside a span.

    -

    Type Parameters

    • T

    Parameters

    • name: string
    • cb: ((span) => T)
        • (span): T
        • Parameters

          • span: any

          Returns T

    Returns T

  • Run an async callback inside a span.

    -

    Type Parameters

    • T

    Parameters

    • name: string
    • cb: ((span) => Promise<T>)
        • (span): Promise<T>
        • Parameters

          • span: any

          Returns Promise<T>

    Returns Promise<T>

Generated using TypeDoc

\ No newline at end of file +
  • Log a warning message.

    +

    Parameters

    • message: string
    • Rest ...attrs: any[]

    Returns void

  • Run a sync callback inside a span.

    +

    Type Parameters

    • T

    Parameters

    • name: string
    • cb: ((span) => T)
        • (span): T
        • Parameters

          • span: any

          Returns T

    Returns T

  • Run an async callback inside a span.

    +

    Type Parameters

    • T

    Parameters

    • name: string
    • cb: ((span) => Promise<T>)
        • (span): Promise<T>
        • Parameters

          • span: any

          Returns Promise<T>

    Returns Promise<T>

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/color.createSteppedScale.html b/js_ref/functions/color.createSteppedScale.html index a6357db5..82253aaa 100644 --- a/js_ref/functions/color.createSteppedScale.html +++ b/js_ref/functions/color.createSteppedScale.html @@ -1,3 +1,3 @@ createSteppedScale | bitbazaar

Function createSteppedScale

  • Creates a scale around an input color with the requested number of steps. E.g. 5 steps requested, it will go: darker1, darker2, input, lighter1, lighter2.

    -

    Parameters

    • __namedParameters: SteppedScaleProps

    Returns string[]

Generated using TypeDoc

\ No newline at end of file +

Parameters

Returns string[]

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/index.hello.html b/js_ref/functions/index.hello.html index 99eca93f..a6cb959b 100644 --- a/js_ref/functions/index.hello.html +++ b/js_ref/functions/index.hello.html @@ -1 +1 @@ -hello | bitbazaar

Function hello

  • Returns string

Generated using TypeDoc

\ No newline at end of file +hello | bitbazaar

Function hello

  • Returns string

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/utils.add.html b/js_ref/functions/utils.add.html index 24dfce74..2192c682 100644 --- a/js_ref/functions/utils.add.html +++ b/js_ref/functions/utils.add.html @@ -1 +1 @@ -add | bitbazaar

Function add

  • Parameters

    • a: number
    • b: number

    Returns number

Generated using TypeDoc

\ No newline at end of file +add | bitbazaar

Function add

  • Parameters

    • a: number
    • b: number

    Returns number

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/utils.assertNever.html b/js_ref/functions/utils.assertNever.html index 8bac4b9e..778d09af 100644 --- a/js_ref/functions/utils.assertNever.html +++ b/js_ref/functions/utils.assertNever.html @@ -1,2 +1,2 @@ assertNever | bitbazaar

Function assertNever

  • Placed in switch default, enforces compiler to check all cases in a switch are matched and this is never reached:

    -

    Parameters

    • neverVal: never

    Returns never

Generated using TypeDoc

\ No newline at end of file +

Parameters

Returns never

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/utils.genPath.html b/js_ref/functions/utils.genPath.html index a7b2f7cf..c963b859 100644 --- a/js_ref/functions/utils.genPath.html +++ b/js_ref/functions/utils.genPath.html @@ -1,3 +1,3 @@ genPath | bitbazaar

Function genPath

  • Helper to make all paths safe, can specify if should start or end with a slash. Works with filepaths and urls, with dynamic defaults depending on what comes in.

    -

    Parameters

    • path_in: string
    • __namedParameters: {
          eSlash?: boolean;
          extra?: string[];
          sShlash?: boolean;
      } = {}
      • Optional eSlash?: boolean
      • Optional extra?: string[]
      • Optional sShlash?: boolean

    Returns string

Generated using TypeDoc

\ No newline at end of file +

Parameters

Returns string

Generated using TypeDoc

\ No newline at end of file diff --git a/js_ref/functions/vite.createConfig.html b/js_ref/functions/vite.createConfig.html index 79a0bf09..5160b716 100644 --- a/js_ref/functions/vite.createConfig.html +++ b/js_ref/functions/vite.createConfig.html @@ -14,4 +14,4 @@
  • Vite will process it further
  • The final minified index.html will be added to the assets folder, where it should be the root of a static site, or server manually from a backend server.
  • -

    Parameters

    Returns UserConfig

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    Returns UserConfig

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/functions/wouter.route.html b/js_ref/functions/wouter.route.html index fb04e20d..5cb15eb1 100644 --- a/js_ref/functions/wouter.route.html +++ b/js_ref/functions/wouter.route.html @@ -1,2 +1,2 @@ route | bitbazaar

    Function route

    Generated using TypeDoc

    \ No newline at end of file +

    Type Parameters

    Parameters

    Returns InnerRouteConfig_T<RouteParamsOutput_T<Params>>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/functions/wouter.routeParams.html b/js_ref/functions/wouter.routeParams.html index e3fd4d06..3aa301ca 100644 --- a/js_ref/functions/wouter.routeParams.html +++ b/js_ref/functions/wouter.routeParams.html @@ -2,4 +2,4 @@

    Type Parameters

    Parameters

    Returns T

    Generated using TypeDoc

    \ No newline at end of file +

    Returns T

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/functions/wouter.routes.html b/js_ref/functions/wouter.routes.html index 37995bad..990d4da3 100644 --- a/js_ref/functions/wouter.routes.html +++ b/js_ref/functions/wouter.routes.html @@ -1,4 +1,4 @@ routes | bitbazaar

    Function routes

    • The producer of wouter components and all the routes, with a fallback and param coercion.

      Type Parameters

      • const T extends Record<string, InnerRouteConfig_T<any>>

      Parameters

      • __namedParameters: {
            Comp404: ComponentType<{}>;
            routes: T;
        }
        • Comp404: ComponentType<{}>
        • routes: T

      Returns {
          paths: {
              [K in string | number | symbol]: T[K] extends InnerRouteConfig_T<X>
                  ? RouteConfig_T<X>
                  : never
          };
          switch: Element;
      }

      an object containing the wouter component and all the routes, should be wrapped in a . Render with routes.switch, build paths with routes.paths.home.build({foo: "bar"}), etc.

      -
      • paths: {
            [K in string | number | symbol]: T[K] extends InnerRouteConfig_T<X>
                ? RouteConfig_T<X>
                : never
        }
      • switch: Element

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/interfaces/vite.TopViteConfig.html b/js_ref/interfaces/vite.TopViteConfig.html index 434aaeb0..526383a3 100644 --- a/js_ref/interfaces/vite.TopViteConfig.html +++ b/js_ref/interfaces/vite.TopViteConfig.html @@ -1,4 +1,4 @@ -TopViteConfig | bitbazaar

    Interface TopViteConfig

    Hierarchy

    • TopViteConfig

    Properties

    alias? +TopViteConfig | bitbazaar

    Interface TopViteConfig

    Hierarchy

    • TopViteConfig

    Properties

    alias? extraNonFrontendGlobs? favicon192PngPath favicon512PngPath @@ -19,17 +19,17 @@ }

    Or better yet, just use the tsconfig paths:
    import tsconfig from "./tsconfig.json";
    alias: tsconfig.compilerOptions.paths,
    -
    extraNonFrontendGlobs?: string[]

    Extra globs to exclude from traversal, can help with performance:

    -
    favicon192PngPath: string
    favicon512PngPath: string
    inspect?: boolean

    Include the inspect plugin, which allows you to see how vite is transforming code:

    -
    port: number
    proxy?: ProxyConf

    Proxy rules to apply to the dev server (i.e. when it should forward requests to a backend)

    -
    sameDomStaticPath: string

    The os path to the files that will deployed to sameDomStaticUrl. +

    extraNonFrontendGlobs?: string[]

    Extra globs to exclude from traversal, can help with performance:

    +
    favicon192PngPath: string
    favicon512PngPath: string
    inspect?: boolean

    Include the inspect plugin, which allows you to see how vite is transforming code:

    +
    port: number
    proxy?: ProxyConf

    Proxy rules to apply to the dev server (i.e. when it should forward requests to a backend)

    +
    sameDomStaticPath: string

    The os path to the files that will deployed to sameDomStaticUrl. Note if the static files are hosted on the same domain (i.e. not linking to a cdn, these can be the same as main static version) E.g. /.../~sds

    -
    sameDomStaticUrl: string

    The absolute url online that sameDomStaticPath files can be retrieved from +

    sameDomStaticUrl: string

    The absolute url online that sameDomStaticPath files can be retrieved from Note if the static files are hosted on the same domain (i.e. not linking to a cdn, these can be the same as main static version) E.g. https://example.com/~sds

    -
    serverFs?: FileSystemServeOptions
    siteDescription: string
    siteName: string
    staticPath: string

    The os path to the files that will deployed to staticUrl. +

    serverFs?: FileSystemServeOptions
    siteDescription: string
    siteName: string
    staticPath: string

    The os path to the files that will deployed to staticUrl. E.g. /.../static

    -
    staticUrl: string

    The absolute url online that staticPath files can be retrieved from +

    staticUrl: string

    The absolute url online that staticPath files can be retrieved from E.g. https://example.com/static

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/modules/color.html b/js_ref/modules/color.html index c263e155..f3eb0ece 100644 --- a/js_ref/modules/color.html +++ b/js_ref/modules/color.html @@ -1,2 +1,2 @@ -color | bitbazaar

    Module color

    Index

    Functions

    createSteppedScale +color | bitbazaar

    Module color

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/modules/index.html b/js_ref/modules/index.html index 67e2ca90..3098059c 100644 --- a/js_ref/modules/index.html +++ b/js_ref/modules/index.html @@ -1,2 +1,2 @@ -index | bitbazaar

    Module index

    Index

    Functions

    hello +index | bitbazaar

    Module index

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/modules/log.html b/js_ref/modules/log.html index 84c229d1..01d0ba1b 100644 --- a/js_ref/modules/log.html +++ b/js_ref/modules/log.html @@ -1,4 +1,4 @@ -log | bitbazaar

    Module log

    Index

    Classes

    GlobalLog +log | bitbazaar

    Module log

    Index

    Classes

    Type Aliases

    Variables

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/modules/utils.html b/js_ref/modules/utils.html index 1e7c6cbc..0c7cb2b2 100644 --- a/js_ref/modules/utils.html +++ b/js_ref/modules/utils.html @@ -1,4 +1,4 @@ -utils | bitbazaar

    Module utils

    Index

    Variables

    areTestsRunning +utils | bitbazaar

    Module utils

    Index

    Variables

    Functions

    add assertNever genPath diff --git a/js_ref/modules/vite.html b/js_ref/modules/vite.html index 66e24007..811fc7ca 100644 --- a/js_ref/modules/vite.html +++ b/js_ref/modules/vite.html @@ -1,3 +1,3 @@ -vite | bitbazaar

    Module vite

    Index

    Interfaces

    TopViteConfig +vite | bitbazaar

    Module vite

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/modules/wouter.html b/js_ref/modules/wouter.html index 45b9c1f8..9f7aee01 100644 --- a/js_ref/modules/wouter.html +++ b/js_ref/modules/wouter.html @@ -1,4 +1,4 @@ -wouter | bitbazaar

    Module wouter

    Index

    Type Aliases

    RouteConfig_T +wouter | bitbazaar

    Module wouter

    Index

    Type Aliases

    Functions

    route routeParams diff --git a/js_ref/types/log.LogLevel.html b/js_ref/types/log.LogLevel.html index 57a94e3e..435bc502 100644 --- a/js_ref/types/log.LogLevel.html +++ b/js_ref/types/log.LogLevel.html @@ -1 +1 @@ -LogLevel | bitbazaar

    Type alias LogLevel

    LogLevel: "DEBUG" | "INFO" | "WARN" | "ERROR"

    Generated using TypeDoc

    \ No newline at end of file +LogLevel | bitbazaar

    Type alias LogLevel

    LogLevel: "DEBUG" | "INFO" | "WARN" | "ERROR"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/types/wouter.RouteConfig_T.html b/js_ref/types/wouter.RouteConfig_T.html index 3c292b49..621f1995 100644 --- a/js_ref/types/wouter.RouteConfig_T.html +++ b/js_ref/types/wouter.RouteConfig_T.html @@ -1 +1 @@ -RouteConfig_T | bitbazaar

    Type alias RouteConfig_T<ParamsOutput>

    RouteConfig_T<ParamsOutput>: InnerRouteConfig_T<ParamsOutput> & {
        route: React.JSX.Element;
    }

    Type Parameters

    Type declaration

    • route: React.JSX.Element

    Generated using TypeDoc

    \ No newline at end of file +RouteConfig_T | bitbazaar

    Type alias RouteConfig_T<ParamsOutput>

    RouteConfig_T<ParamsOutput>: InnerRouteConfig_T<ParamsOutput> & {
        route: React.JSX.Element;
    }

    Type Parameters

    Type declaration

    • route: React.JSX.Element

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/types/wouter.RouteParamsOutput_T.html b/js_ref/types/wouter.RouteParamsOutput_T.html index 3f373bae..3fc82ad7 100644 --- a/js_ref/types/wouter.RouteParamsOutput_T.html +++ b/js_ref/types/wouter.RouteParamsOutput_T.html @@ -1 +1 @@ -RouteParamsOutput_T | bitbazaar

    Type alias RouteParamsOutput_T<Params>

    RouteParamsOutput_T<Params>: {
        [K in Params[number][0]]: Extract<Params[number], readonly [K, any]>[1] extends "int" | "float"
            ? number
            : Extract<Params[number], readonly [K, any]>[1] extends "boolean"
                ? boolean
                : Extract<Params[number], readonly [K, any]>[1] extends "string"
                    ? string
                    : never
    }

    Type Parameters

    • Params extends RouteParams_T

    Generated using TypeDoc

    \ No newline at end of file +RouteParamsOutput_T | bitbazaar

    Type alias RouteParamsOutput_T<Params>

    RouteParamsOutput_T<Params>: {
        [K in Params[number][0]]: Extract<Params[number], readonly [K, any]>[1] extends "int" | "float"
            ? number
            : Extract<Params[number], readonly [K, any]>[1] extends "boolean"
                ? boolean
                : Extract<Params[number], readonly [K, any]>[1] extends "string"
                    ? string
                    : never
    }

    Type Parameters

    • Params extends RouteParams_T

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/variables/log.LOG.html b/js_ref/variables/log.LOG.html index ff7d18e3..e8e79590 100644 --- a/js_ref/variables/log.LOG.html +++ b/js_ref/variables/log.LOG.html @@ -1 +1 @@ -LOG | bitbazaar

    Variable LOGConst

    LOG: GlobalLog = ...

    Generated using TypeDoc

    \ No newline at end of file +LOG | bitbazaar

    Variable LOGConst

    LOG: GlobalLog = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/js_ref/variables/utils.areTestsRunning.html b/js_ref/variables/utils.areTestsRunning.html index f2fb19e9..404f3900 100644 --- a/js_ref/variables/utils.areTestsRunning.html +++ b/js_ref/variables/utils.areTestsRunning.html @@ -1 +1 @@ -areTestsRunning | bitbazaar

    Variable areTestsRunningConst

    areTestsRunning: boolean = ...

    Generated using TypeDoc

    \ No newline at end of file +areTestsRunning | bitbazaar

    Variable areTestsRunningConst

    areTestsRunning: boolean = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/py_ref/SUMMARY/index.html b/py_ref/SUMMARY/index.html index ea900b44..161acbc8 100644 --- a/py_ref/SUMMARY/index.html +++ b/py_ref/SUMMARY/index.html @@ -901,11 +901,11 @@

    SUMMARY

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_ref/index.html b/py_ref/index.html index 89abc591..7022b16e 100644 --- a/py_ref/index.html +++ b/py_ref/index.html @@ -954,11 +954,11 @@

    bitbazaar

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_ref/log/index.html b/py_ref/log/index.html index 1228fd7a..ac587774 100644 --- a/py_ref/log/index.html +++ b/py_ref/log/index.html @@ -1673,11 +1673,11 @@

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_ref/misc/index.html b/py_ref/misc/index.html index 572f1c64..a04d4115 100644 --- a/py_ref/misc/index.html +++ b/py_ref/misc/index.html @@ -1391,11 +1391,11 @@

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_ref/testing/index.html b/py_ref/testing/index.html index bdd57acf..20974ba3 100644 --- a/py_ref/testing/index.html +++ b/py_ref/testing/index.html @@ -1329,11 +1329,11 @@

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_rust_ref/SUMMARY/index.html b/py_rust_ref/SUMMARY/index.html index 579a8a9b..25f8f2ba 100644 --- a/py_rust_ref/SUMMARY/index.html +++ b/py_rust_ref/SUMMARY/index.html @@ -899,11 +899,11 @@

    SUMMARY

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_rust_ref/index.html b/py_rust_ref/index.html index c458a4f8..34732ec4 100644 --- a/py_rust_ref/index.html +++ b/py_rust_ref/index.html @@ -1022,11 +1022,11 @@

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/py_rust_ref/utils/index.html b/py_rust_ref/utils/index.html index 02f20f1b..6a1d114f 100644 --- a/py_rust_ref/utils/index.html +++ b/py_rust_ref/utils/index.html @@ -1128,11 +1128,11 @@

    Last update: - May 30, 2024 + May 31, 2024
    Created: - May 30, 2024 + May 31, 2024
    diff --git a/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build-script-build b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build-script-build new file mode 100644 index 00000000..1866411d Binary files /dev/null and b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build-script-build differ diff --git a/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1 b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1 new file mode 100644 index 00000000..1866411d Binary files /dev/null and b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1 differ diff --git a/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1.d b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1.d new file mode 100644 index 00000000..83d12ef0 --- /dev/null +++ b/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1.d @@ -0,0 +1,5 @@ +/home/runner/work/bitbazaar/bitbazaar/./docs/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1: build.rs + +/home/runner/work/bitbazaar/bitbazaar/./docs/rust_ref/debug/build/bitbazaar-7df5f2598256d4e1/build_script_build-7df5f2598256d4e1.d: build.rs + +build.rs: diff --git a/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/invoked.timestamp b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/output b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/output new file mode 100644 index 00000000..7727203d --- /dev/null +++ b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/output @@ -0,0 +1,5 @@ +cargo::rustc-check-cfg=cfg(CHANNEL_STABLE, values(none())) +cargo::rustc-check-cfg=cfg(CHANNEL_BETA, values(none())) +cargo::rustc-check-cfg=cfg(CHANNEL_NIGHTLY, values(none())) +cargo::rustc-check-cfg=cfg(CHANNEL_DEV, values(none())) +cargo:rustc-cfg=CHANNEL_STABLE diff --git a/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/root-output b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/root-output new file mode 100644 index 00000000..715aa86a --- /dev/null +++ b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/root-output @@ -0,0 +1 @@ +/home/runner/work/bitbazaar/bitbazaar/./docs/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/out \ No newline at end of file diff --git a/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/stderr b/rust_ref/debug/build/bitbazaar-ed950da14dbc30e7/stderr new file mode 100644 index 00000000..e69de29b diff --git a/rust_ref/doc/bitbazaar/all.html b/rust_ref/doc/bitbazaar/all.html index e66c3a9f..77061d57 100644 --- a/rust_ref/doc/bitbazaar/all.html +++ b/rust_ref/doc/bitbazaar/all.html @@ -1,2 +1,2 @@ -List of all items in this crate +List of all items in this crate
    \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/chrono/fn.chrono_dt_to_local.html b/rust_ref/doc/bitbazaar/chrono/fn.chrono_dt_to_local.html index 2ffc16e7..acc6fca4 100644 --- a/rust_ref/doc/bitbazaar/chrono/fn.chrono_dt_to_local.html +++ b/rust_ref/doc/bitbazaar/chrono/fn.chrono_dt_to_local.html @@ -1,4 +1,4 @@ -chrono_dt_to_local in bitbazaar::chrono - Rust +chrono_dt_to_local in bitbazaar::chrono - Rust
    pub fn chrono_dt_to_local(dt: DateTime<Utc>) -> DateTime<Local>
    Expand description

    Convert a chrono datetime to the local timezone.

    Arguments:

      diff --git a/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_dt.html b/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_dt.html index 77d3c328..ff08fba8 100644 --- a/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_dt.html +++ b/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_dt.html @@ -1,4 +1,4 @@ -chrono_format_dt in bitbazaar::chrono - Rust +chrono_format_dt in bitbazaar::chrono - Rust
      pub fn chrono_format_dt(dt: DateTime<Utc>) -> String
      Expand description

      Formats a chrono::DateTime, also localising it to the user’s timezone.

      Arguments:

        diff --git a/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_td.html b/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_td.html index 8f4df42d..5824e226 100644 --- a/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_td.html +++ b/rust_ref/doc/bitbazaar/chrono/fn.chrono_format_td.html @@ -1,4 +1,4 @@ -chrono_format_td in bitbazaar::chrono - Rust +chrono_format_td in bitbazaar::chrono - Rust
        pub fn chrono_format_td(td: Duration, precise: bool) -> String
        Expand description

        Formats a chrono::Duration` in the present case. Arguments:

        Implementations§

        source§

        impl BashErr

        source

        pub fn bash_out(&self) -> &BashOut

        Get the BashOut from the error.

        -

        Trait Implementations§

        source§

        impl Debug for BashErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Display for BashErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Context for BashErr

        Auto Trait Implementations§

        Blanket Implementations§

        source§

        impl<T> Any for T
        where +

        Trait Implementations§

        source§

        impl Debug for BashErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Display for BashErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Context for BashErr

        Auto Trait Implementations§

        Blanket Implementations§

        source§

        impl<T> Any for T
        where T: 'static + ?Sized,

        source§

        fn type_id(&self) -> TypeId

        Gets the TypeId of self. Read more
        source§

        impl<T> Borrow<T> for T
        where T: ?Sized,

        source§

        fn borrow(&self) -> &T

        Immutably borrows from an owned value. Read more
        source§

        impl<T> BorrowMut<T> for T
        where T: ?Sized,

        source§

        fn borrow_mut(&mut self) -> &mut T

        Mutably borrows from an owned value. Read more
        source§

        impl<T> From<T> for T

        source§

        fn from(t: T) -> T

        Returns the argument unchanged.

        diff --git a/rust_ref/doc/bitbazaar/cli/index.html b/rust_ref/doc/bitbazaar/cli/index.html index ca3d1dbe..78365dd0 100644 --- a/rust_ref/doc/bitbazaar/cli/index.html +++ b/rust_ref/doc/bitbazaar/cli/index.html @@ -1,3 +1,3 @@ -bitbazaar::cli - Rust +bitbazaar::cli - Rust

        Module bitbazaar::cli

        source ·
        Expand description

        Command line interface utilities.

        Structs§

        • Execute an arbitrary bash script.
        • The result of running a command
        • The result of an individual command.

        Enums§

        • User facing error type for Bash functionality.
        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/cli/struct.Bash.html b/rust_ref/doc/bitbazaar/cli/struct.Bash.html index b45d3e2d..b8e9ca22 100644 --- a/rust_ref/doc/bitbazaar/cli/struct.Bash.html +++ b/rust_ref/doc/bitbazaar/cli/struct.Bash.html @@ -1,4 +1,4 @@ -Bash in bitbazaar::cli - Rust +Bash in bitbazaar::cli - Rust

        Struct bitbazaar::cli::Bash

        source ·
        pub struct Bash { /* private fields */ }
        Expand description

        Execute an arbitrary bash script.

        WARNING: this opens up the possibility of dependency injection attacks, so should only be used when the command is trusted. If compiled usage is all that’s needed, use something like rust_cmd_lib instead, which only provides a macro literal interface. diff --git a/rust_ref/doc/bitbazaar/cli/struct.BashOut.html b/rust_ref/doc/bitbazaar/cli/struct.BashOut.html index 9cab39d4..29dcb6ee 100644 --- a/rust_ref/doc/bitbazaar/cli/struct.BashOut.html +++ b/rust_ref/doc/bitbazaar/cli/struct.BashOut.html @@ -1,4 +1,4 @@ -BashOut in bitbazaar::cli - Rust

        +BashOut in bitbazaar::cli - Rust

        Struct bitbazaar::cli::BashOut

        source ·
        pub struct BashOut {
             pub command_results: Vec<CmdResult>,
             /* private fields */
        diff --git a/rust_ref/doc/bitbazaar/cli/struct.CmdResult.html b/rust_ref/doc/bitbazaar/cli/struct.CmdResult.html
        index 6a210493..88b2a0fb 100644
        --- a/rust_ref/doc/bitbazaar/cli/struct.CmdResult.html
        +++ b/rust_ref/doc/bitbazaar/cli/struct.CmdResult.html
        @@ -1,4 +1,4 @@
        -CmdResult in bitbazaar::cli - Rust
        +CmdResult in bitbazaar::cli - Rust
             

        Struct bitbazaar::cli::CmdResult

        source ·
        pub struct CmdResult {
             pub command: String,
             pub code: i32,
        diff --git a/rust_ref/doc/bitbazaar/errors/index.html b/rust_ref/doc/bitbazaar/errors/index.html
        index 0564f4eb..0b150e16 100644
        --- a/rust_ref/doc/bitbazaar/errors/index.html
        +++ b/rust_ref/doc/bitbazaar/errors/index.html
        @@ -1,3 +1,3 @@
        -bitbazaar::errors - Rust
        +bitbazaar::errors - Rust
             

        Module bitbazaar::errors

        source ·
        Expand description

        Error handling utilities.

        Structs§

        • A generic trace_stack error to use when you don’t want to create custom error types.
        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/errors/struct.AnyErr.html b/rust_ref/doc/bitbazaar/errors/struct.AnyErr.html index 6d206312..927c9439 100644 --- a/rust_ref/doc/bitbazaar/errors/struct.AnyErr.html +++ b/rust_ref/doc/bitbazaar/errors/struct.AnyErr.html @@ -1,6 +1,6 @@ -AnyErr in bitbazaar::errors - Rust +AnyErr in bitbazaar::errors - Rust

        Struct bitbazaar::errors::AnyErr

        source ·
        pub struct AnyErr;
        Expand description

        A generic trace_stack error to use when you don’t want to create custom error types.

        -

        Trait Implementations§

        source§

        impl Debug for AnyErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Default for AnyErr

        source§

        fn default() -> AnyErr

        Returns the “default value” for a type. Read more
        source§

        impl Display for AnyErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Context for AnyErr

        Auto Trait Implementations§

        §

        impl Freeze for AnyErr

        §

        impl RefUnwindSafe for AnyErr

        §

        impl Send for AnyErr

        §

        impl Sync for AnyErr

        §

        impl Unpin for AnyErr

        §

        impl UnwindSafe for AnyErr

        Blanket Implementations§

        source§

        impl<T> Any for T
        where +

        Trait Implementations§

        source§

        impl Debug for AnyErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Default for AnyErr

        source§

        fn default() -> AnyErr

        Returns the “default value” for a type. Read more
        source§

        impl Display for AnyErr

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl Context for AnyErr

        Auto Trait Implementations§

        §

        impl Freeze for AnyErr

        §

        impl RefUnwindSafe for AnyErr

        §

        impl Send for AnyErr

        §

        impl Sync for AnyErr

        §

        impl Unpin for AnyErr

        §

        impl UnwindSafe for AnyErr

        Blanket Implementations§

        source§

        impl<T> Any for T
        where T: 'static + ?Sized,

        source§

        fn type_id(&self) -> TypeId

        Gets the TypeId of self. Read more
        source§

        impl<T> Borrow<T> for T
        where T: ?Sized,

        source§

        fn borrow(&self) -> &T

        Immutably borrows from an owned value. Read more
        source§

        impl<T> BorrowMut<T> for T
        where T: ?Sized,

        source§

        fn borrow_mut(&mut self) -> &mut T

        Mutably borrows from an owned value. Read more
        source§

        impl<T> From<T> for T

        source§

        fn from(t: T) -> T

        Returns the argument unchanged.

        diff --git a/rust_ref/doc/bitbazaar/hash/fn.fnv1a.html b/rust_ref/doc/bitbazaar/hash/fn.fnv1a.html index 9c682471..d7a302db 100644 --- a/rust_ref/doc/bitbazaar/hash/fn.fnv1a.html +++ b/rust_ref/doc/bitbazaar/hash/fn.fnv1a.html @@ -1,4 +1,4 @@ -fnv1a in bitbazaar::hash - Rust +fnv1a in bitbazaar::hash - Rust

        Function bitbazaar::hash::fnv1a

        source ·
        pub fn fnv1a(input: &[u8]) -> u64
        Expand description

        FNV1a hash function. Note this is completely insecure, and should not be used for secure hashing. It should be used when speed is needed, and the hash does not need to be secure.

        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/hash/index.html b/rust_ref/doc/bitbazaar/hash/index.html index aa9a2554..6175eb71 100644 --- a/rust_ref/doc/bitbazaar/hash/index.html +++ b/rust_ref/doc/bitbazaar/hash/index.html @@ -1,4 +1,4 @@ -bitbazaar::hash - Rust +bitbazaar::hash - Rust

        Module bitbazaar::hash

        source ·
        Expand description

        Hashing utilities.

        Functions§

        • FNV1a hash function. Note this is completely insecure, and should not be used for secure hashing. It should be used when speed is needed, and the hash does not need to be secure.
        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/index.html b/rust_ref/doc/bitbazaar/index.html index 68dc775d..0803bd58 100644 --- a/rust_ref/doc/bitbazaar/index.html +++ b/rust_ref/doc/bitbazaar/index.html @@ -1,4 +1,4 @@ -bitbazaar - Rust
        source§

        impl<'a, 'b, 'c, A: FromRedisValue, B: FromRedisValue, C: FromRedisValue, D: FromRedisValue, E: FromRedisValue, F: FromRedisValue, G: FromRedisValue, H: FromRedisValue, I: FromRedisValue, J: FromRedisValue> RedisBatchReturningOps<'c> for RedisBatch<'a, 'b, 'c, (A, B, C, D, E, F, G, H, I, J)>

        §

        type NextType<T> = RedisBatch<'a, 'b, 'c, (A, B, C, D, E, F, G, H, I, J, T)>

        The producer for the next batch struct sig.
        source§

        fn script<ScriptOutput: FromRedisValue>( self, script_invokation: RedisScriptInvoker<'c> -) -> Self::NextType<ScriptOutput>

        Run an arbitrary redis (lua script).
        source§

        fn exists(self, namespace: &str, key: &str) -> Self::NextType<bool>

        Check if a key exists.
        source§

        fn mexists<'key>( +) -> Self::NextType<ScriptOutput>

        Run an arbitrary redis (lua script).
        source§

        fn exists(self, namespace: &str, key: &str) -> Self::NextType<bool>

        Check if a key exists.
        source§

        fn mexists<'key>( self, namespace: &str, keys: impl IntoIterator<Item = &'key str> -) -> Self::NextType<Vec<bool>>

        Check if multiple keys exists.
        source§

        fn get<Value: FromRedisValue>( +) -> Self::NextType<Vec<bool>>

        Check if multiple keys exists.
        source§

        fn get<Value: FromRedisValue>( self, namespace: &str, key: &str -) -> Self::NextType<Option<Value>>

        Get a value from a key. Returning None if the key doesn’t exist.
        source§

        fn mget<Value>( +) -> Self::NextType<Option<Value>>

        Get a value from a key. Returning None if the key doesn’t exist.
        source§

        fn mget<Value>( self, namespace: &str, keys: impl IntoIterator<Item = impl AsRef<str>> -) -> Self::NextType<Vec<Option<Value>>>

        Get multiple values (MGET) of the same type at once. Returning None for each key that didn’t exist.
        source§

        fn zrangebyscore_high_to_low<Value: FromRedisValue>( +) -> Self::NextType<Vec<Option<Value>>>

        Get multiple values (MGET) of the same type at once. Returning None for each key that didn’t exist.
        source§

        fn zrangebyscore_high_to_low<Value: FromRedisValue>( self, set_namespace: &str, set_key: &str, @@ -446,7 +446,7 @@ limit: Option<isize> ) -> Self::NextType<Vec<(Option<Value>, i64)>>

        HIGHEST TO LOWEST SCORES. Retrieve entries from an ordered set by score range. (range is inclusive) -Items that cannot be decoded into the specified type are returned as None. Read more
        source§

        fn zrangebyscore_low_to_high<Value: FromRedisValue>( +Items that cannot be decoded into the specified type are returned as None. Read more

        source§

        fn zrangebyscore_low_to_high<Value: FromRedisValue>( self, set_namespace: &str, set_key: &str, diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisConn.html b/rust_ref/doc/bitbazaar/redis/struct.RedisConn.html index f8dfb6fd..cdfb1f88 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisConn.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisConn.html @@ -1,4 +1,4 @@ -RedisConn in bitbazaar::redis - Rust +RedisConn in bitbazaar::redis - Rust

        Struct bitbazaar::redis::RedisConn

        source ·
        pub struct RedisConn<'a> { /* private fields */ }
        Expand description

        Wrapper around a lazy redis connection.

        Implementations§

        source§

        impl<'a> RedisConn<'a>

        Public methods for RedisConn.

        source

        pub async fn get_inner_conn(&mut self) -> Option<&mut Connection>

        Get an internal connection from the pool, connections are kept in the pool for reuse. diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisJson.html b/rust_ref/doc/bitbazaar/redis/struct.RedisJson.html index 45f068d1..ce4f427f 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisJson.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisJson.html @@ -1,4 +1,4 @@ -RedisJson in bitbazaar::redis - Rust

        +RedisJson in bitbazaar::redis - Rust

        Struct bitbazaar::redis::RedisJson

        source ·
        pub struct RedisJson<T: Serialize + for<'a> Deserialize<'a>>(pub T);
        Expand description

        A wrapper on an arbitrary json object to allow reading and writing to redis. Access the inner with .0.

        Tuple Fields§

        §0: T

        Trait Implementations§

        source§

        impl<T: Clone + Serialize + for<'a> Deserialize<'a>> Clone for RedisJson<T>

        source§

        fn clone(&self) -> RedisJson<T>

        Returns a copy of the value. Read more
        1.0.0 · source§

        fn clone_from(&mut self, source: &Self)

        Performs copy-assignment from source. Read more
        source§

        impl<T: Debug + Serialize + for<'a> Deserialize<'a>> Debug for RedisJson<T>

        source§

        fn fmt(&self, f: &mut Formatter<'_>) -> Result

        Formats the value using the given formatter. Read more
        source§

        impl<T: Serialize + for<'a> Deserialize<'a>> FromRedisValue for RedisJson<T>

        source§

        fn from_redis_value(v: &Value) -> RedisResult<Self>

        Given a redis Value this attempts to convert it into the given diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisJsonBorrowed.html b/rust_ref/doc/bitbazaar/redis/struct.RedisJsonBorrowed.html index e9821c77..221281c1 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisJsonBorrowed.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisJsonBorrowed.html @@ -1,4 +1,4 @@ -RedisJsonBorrowed in bitbazaar::redis - Rust +RedisJsonBorrowed in bitbazaar::redis - Rust
        pub struct RedisJsonBorrowed<'a, T>(pub &'a T)
         where
             T: Deserialize<'a>,
        diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisLock.html b/rust_ref/doc/bitbazaar/redis/struct.RedisLock.html
        index bb1cf941..7e094e43 100644
        --- a/rust_ref/doc/bitbazaar/redis/struct.RedisLock.html
        +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisLock.html
        @@ -1,4 +1,4 @@
        -RedisLock in bitbazaar::redis - Rust
        +RedisLock in bitbazaar::redis - Rust
             

        Struct bitbazaar::redis::RedisLock

        source ·
        pub struct RedisLock<'a> {
             pub lock_id: Vec<u8>,
             pub val: Vec<u8>,
        diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisScript.html b/rust_ref/doc/bitbazaar/redis/struct.RedisScript.html
        index d7d22804..5f04e202 100644
        --- a/rust_ref/doc/bitbazaar/redis/struct.RedisScript.html
        +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisScript.html
        @@ -1,4 +1,4 @@
        -RedisScript in bitbazaar::redis - Rust
        +RedisScript in bitbazaar::redis - Rust
             
        pub struct RedisScript { /* private fields */ }
        Expand description

        A lua script wrapper. Should be created once per script.

        Implementations§

        source§

        impl RedisScript

        source

        pub fn new(code: &'static str) -> RedisScript

        Create the script object. Use include_str!() to allow the script to exist in its own file for highlighting etc.

        diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisScriptInvoker.html b/rust_ref/doc/bitbazaar/redis/struct.RedisScriptInvoker.html index 763ea25a..5f588215 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisScriptInvoker.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisScriptInvoker.html @@ -1,4 +1,4 @@ -RedisScriptInvoker in bitbazaar::redis - Rust +RedisScriptInvoker in bitbazaar::redis - Rust
        pub struct RedisScriptInvoker<'a> { /* private fields */ }
        Expand description

        Represents a individual script call with specific args and keys.

        Implementations§

        source§

        impl<'a> RedisScriptInvoker<'a>

        source

        pub fn arg<'b, T: ToRedisArgs>(self, arg: T) -> Self
        where 'a: 'b,

        Add a regular argument. I.e. ARGV[i]

        diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisTempList.html b/rust_ref/doc/bitbazaar/redis/struct.RedisTempList.html index 3fc34e80..10e6f2e9 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisTempList.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisTempList.html @@ -1,4 +1,4 @@ -RedisTempList in bitbazaar::redis - Rust +RedisTempList in bitbazaar::redis - Rust
        pub struct RedisTempList {
             pub namespace: Cow<'static, str>,
             pub key: String,
        diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItem.html b/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItem.html
        index 0fa20698..5ab5c4c5 100644
        --- a/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItem.html
        +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItem.html
        @@ -1,4 +1,4 @@
        -RedisTempListItem in bitbazaar::redis - Rust
        +RedisTempListItem in bitbazaar::redis - Rust
             
        pub struct RedisTempListItem<T> { /* private fields */ }
        Expand description

        A user friendly interface around a redis list item, allowing for easy updates and replacements. This encapsulates when items aren’t available, or the user doesn’t actually want to use an item in some cases, but doesn’t want to pass Options<> around.

        Implementations§

        source§

        impl<T: Serialize + for<'a> Deserialize<'a>> RedisTempListItem<T>

        source

        pub fn vec_items(items: Vec<Self>) -> Vec<T>

        Useful helper utility to just get a vec of valid items from a vec of holders. diff --git a/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItemWithConn.html b/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItemWithConn.html index 51827522..3d03a984 100644 --- a/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItemWithConn.html +++ b/rust_ref/doc/bitbazaar/redis/struct.RedisTempListItemWithConn.html @@ -1,4 +1,4 @@ -RedisTempListItemWithConn in bitbazaar::redis - Rust

        +RedisTempListItemWithConn in bitbazaar::redis - Rust
        pub struct RedisTempListItemWithConn<'a, 'b, 'c, T> {
             pub conn: &'b mut RedisConn<'c>,
             /* private fields */
        diff --git a/rust_ref/doc/bitbazaar/redis/trait.RedisBatchFire.html b/rust_ref/doc/bitbazaar/redis/trait.RedisBatchFire.html
        index 075394e3..6a0df895 100644
        --- a/rust_ref/doc/bitbazaar/redis/trait.RedisBatchFire.html
        +++ b/rust_ref/doc/bitbazaar/redis/trait.RedisBatchFire.html
        @@ -1,4 +1,4 @@
        -RedisBatchFire in bitbazaar::redis - Rust
        +RedisBatchFire in bitbazaar::redis - Rust
             
        pub trait RedisBatchFire {
             type ReturnType;
         
        diff --git a/rust_ref/doc/bitbazaar/redis/trait.RedisBatchReturningOps.html b/rust_ref/doc/bitbazaar/redis/trait.RedisBatchReturningOps.html
        index e06cf9fb..675c75f2 100644
        --- a/rust_ref/doc/bitbazaar/redis/trait.RedisBatchReturningOps.html
        +++ b/rust_ref/doc/bitbazaar/redis/trait.RedisBatchReturningOps.html
        @@ -1,4 +1,4 @@
        -RedisBatchReturningOps in bitbazaar::redis - Rust
        +RedisBatchReturningOps in bitbazaar::redis - Rust
             
        pub trait RedisBatchReturningOps<'c> {
             type NextType<T>;
         
        diff --git a/rust_ref/doc/bitbazaar/timing/fn.format_duration.html b/rust_ref/doc/bitbazaar/timing/fn.format_duration.html
        index 1d7b9532..889609a5 100644
        --- a/rust_ref/doc/bitbazaar/timing/fn.format_duration.html
        +++ b/rust_ref/doc/bitbazaar/timing/fn.format_duration.html
        @@ -1,3 +1,3 @@
        -format_duration in bitbazaar::timing - Rust
        +format_duration in bitbazaar::timing - Rust
             
        pub fn format_duration(duration: Duration) -> String
        Expand description

        Format a duration in a human readable format.

        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/timing/index.html b/rust_ref/doc/bitbazaar/timing/index.html index a5166990..e7a3a2c5 100644 --- a/rust_ref/doc/bitbazaar/timing/index.html +++ b/rust_ref/doc/bitbazaar/timing/index.html @@ -1,3 +1,3 @@ -bitbazaar::timing - Rust +bitbazaar::timing - Rust

        Module bitbazaar::timing

        source ·
        Expand description

        Timing utilities

        Structs§

        • A struct for recording time spent in various blocks of code.

        Statics§

        Functions§

        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/timing/static.GLOBAL_TIME_RECORDER.html b/rust_ref/doc/bitbazaar/timing/static.GLOBAL_TIME_RECORDER.html index 427a8207..234caacc 100644 --- a/rust_ref/doc/bitbazaar/timing/static.GLOBAL_TIME_RECORDER.html +++ b/rust_ref/doc/bitbazaar/timing/static.GLOBAL_TIME_RECORDER.html @@ -1,3 +1,3 @@ -GLOBAL_TIME_RECORDER in bitbazaar::timing - Rust +GLOBAL_TIME_RECORDER in bitbazaar::timing - Rust
        pub static GLOBAL_TIME_RECORDER: Lazy<TimeRecorder>
        Expand description

        A global time recorder, used by the timeit! macro.

        \ No newline at end of file diff --git a/rust_ref/doc/bitbazaar/timing/struct.TimeRecorder.html b/rust_ref/doc/bitbazaar/timing/struct.TimeRecorder.html index 0dfce36a..2264a2ef 100644 --- a/rust_ref/doc/bitbazaar/timing/struct.TimeRecorder.html +++ b/rust_ref/doc/bitbazaar/timing/struct.TimeRecorder.html @@ -1,4 +1,4 @@ -TimeRecorder in bitbazaar::timing - Rust +TimeRecorder in bitbazaar::timing - Rust
        pub struct TimeRecorder { /* private fields */ }
        Expand description

        A struct for recording time spent in various blocks of code.

        Implementations§

        source§

        impl TimeRecorder

        source

        pub fn new() -> Self

        Create a new time recorder.

        source

        pub fn timeit<R, F: FnOnce() -> R>(&self, description: &str, f: F) -> R

        Time a block of code and log to the time recorder.

        diff --git a/rust_ref/doc/search-index.js b/rust_ref/doc/search-index.js index cd8f2802..8f74a469 100644 --- a/rust_ref/doc/search-index.js +++ b/rust_ref/doc/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["bitbazaar",{"doc":"bitbazaar - An assortment of publicly available …","t":"QCCQCCCCQQCQCQQHHHFGPFPFPNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNHFFNNNNNNNNNNNNNNNHNNNHNNHNNNNNNHNCNNHNHNHNNHNNNNNNNNNNNPPPPFFPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOCNNNNNNNNNNNNNNNNNNNNNNNNONNNNFFFFFKKKFFMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHYPRFFKKFFFFGFFFFFRYPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNONNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOOMNNNNNNNNNNNNNMNNNNNNNNNNNNNNONNNNNNNNENNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNJFNNNNNNHNNNNNNNNNNNN","n":["anyerr","chrono","cli","err","errors","hash","log","misc","panic_on_err","panic_on_err_async","redis","timeit","timing","warn_user_once","warn_user_once_by_id","chrono_dt_to_local","chrono_format_dt","chrono_format_td","Bash","BashErr","BashFeatureUnsupported","BashOut","BashSyntaxError","CmdResult","InternalError","bash_out","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chdir","clone","clone","clone_into","clone_into","cmd","code","code","command","command_results","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","env","fmt","fmt","fmt","fmt","fmt_attempted_commands","from","from","from","from","from","from_ref","from_ref","init","init","init","init","into","into","into","into","into_request","into_request","into_request","into_request","last_std_all","last_stderr","last_stdout","new","run","std_all","stderr","stderr","stdout","stdout","success","throw_on_bad_code","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","AnyErr","borrow","borrow_mut","default","deref","deref_mut","drop","fmt","fmt","from","init","into","into_request","to_string","try_from","try_into","type_id","vzip","fnv1a","GlobalLog","GlobalLogBuilder","borrow","borrow","borrow_mut","borrow_mut","build","builder","custom","default","deref","deref","deref_mut","deref_mut","drop","drop","file","flush","flush","from","from","global_meter","init","init","init_system_and_process_metrics","into","into","into_request","into_request","level_from","loc_matcher","meter","meter","otlp","otlp_grpc","otlp_http","record_exception","register_global","set_response_headers_from_ctx","set_response_headers_from_ctx","set_span_parent_from_http_headers","set_span_parent_from_http_headers","setup_quick_stdout_global_logging","shutdown","shutdown","stdout","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","with_tmp_global","Array","Bool","F64","I64","Key","KeyValue","String","StringValue","Value","array","as_ref","as_str","as_str","as_str","bool","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","f64","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_static_str","hash","hash","i64","init","init","init","init","into","into","into","into","into_request","into_request","into_request","into_request","key","metrics","new","new","partial_cmp","partial_cmp","string","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","Counter","Histogram","ObservableCounter","ObservableGauge","ObservableUpDownCounter","SyncCounter","SyncHistogram","SyncUpDownCounter","Unit","UpDownCounter","add","add","add","add","as_any","as_any","as_any","as_any","as_any","as_any","as_ref","as_str","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","hash","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into_request","into_request","into_request","into_request","into_request","into_request","into_request","new","new","new","new","new","new","new","observe","observe","observe","observe","observe","observe","record","record","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","in_ci","is_tcp_port_listening","FromRedisValue","InternalErr","NextType","Redis","RedisBatch","RedisBatchFire","RedisBatchReturningOps","RedisConn","RedisJson","RedisJsonBorrowed","RedisLock","RedisLockErr","RedisScript","RedisScriptInvoker","RedisTempList","RedisTempListItem","RedisTempListItemWithConn","ReturnType","ToRedisArgs","Unavailable","UserErr","arg","batch","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cached_fn","clear","clear","clear_namespace","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","conn","conn","delete","delete","delete_multi","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","dlock","dlock_for_fut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","exists","exists","exists","exists","exists","exists","exists","exists","exists","exists","exists","exists","exists","exists","expire","expires_at","extend","extend","final_key","final_namespace","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_redis_value","from_ref","from_ref","from_ref","from_ref","from_ref","get","get","get","get","get","get","get","get","get","get","get","get","get","get","get_conn_to_each_server","get_inner_conn","get_inner_pool","hash","hold_for_fut","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into","into_item","into_request","into_request","into_request","into_request","into_request","into_request","into_request","into_request","into_request","into_request","into_request","into_request","invoker","item","item","item_inactive_ttl","key","key","list_inactive_ttl","lock_id","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mexists","mget","mget","mget","mget","mget","mget","mget","mget","mget","mget","mget","mget","mget","mget","mset","namespace","new","new","new","new_dummy","push","read","read_multi","read_multi_raw","redis","replace","replace","script","script","script","script","script","script","script","script","script","script","script","script","script","script","script_no_return","serialize","serialize","set","templist","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","uid","uid","unlock","update","update","update","val","vec_items","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wait_up_to","with_conn","write_redis_args","write_redis_args","zadd","zadd_multi","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_high_to_low","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrangebyscore_low_to_high","zrem","zremrangebyscore","GLOBAL_TIME_RECORDER","TimeRecorder","borrow","borrow_mut","default","deref","deref_mut","drop","format_duration","format_verbose","from","init","into","into_request","new","timeit","total_elapsed","try_from","try_into","type_id","vzip"],"q":[[0,"bitbazaar"],[15,"bitbazaar::chrono"],[18,"bitbazaar::cli"],[113,"bitbazaar::errors"],[131,"bitbazaar::hash"],[132,"bitbazaar::log"],[187,"bitbazaar::log::otlp"],[325,"bitbazaar::log::otlp::metrics"],[509,"bitbazaar::misc"],[511,"bitbazaar::redis"],[909,"bitbazaar::timing"],[930,"chrono::offset::utc"],[931,"chrono::datetime"],[932,"chrono::offset::local"],[933,"alloc::string"],[934,"chrono"],[935,"std::path"],[936,"core::convert"],[937,"core::fmt"],[938,"core::fmt"],[939,"error_stack::result"],[940,"error_stack::context"],[941,"core::result"],[942,"core::any"],[943,"std::path"],[944,"tracing_core::metadata"],[945,"regex::regex::string"],[946,"alloc::borrow"],[947,"http::response"],[948,"tracing::span"],[949,"http::header::map"],[950,"core::ops::function"],[951,"opentelemetry::common"],[952,"core::cmp"],[953,"core::fmt"],[954,"core::hash"],[955,"core::option"],[956,"core::any"],[957,"core::fmt"],[958,"opentelemetry::metrics::instruments"],[959,"core::time"],[960,"redis::types"],[961,"core::iter::traits::collect"],[962,"serde::ser"],[963,"serde::de"],[964,"serde::de"],[965,"redis::types"],[966,"deadpool_redis"],[967,"redis::types"]],"d":["A macro for building Report<AnyErr> objects with string …","Chrono utilities","Command line interface utilities.","A macro for building Report<ArbitraryErrorStackErr> …","Error handling utilities.","Hashing utilities.","Logging utilities","Completely miscellaneous utilities","When working in a function that cannot return a result, …","When working in a function that cannot return a result, …","Redis utilities","Time a block of code and log to the global time recorder.","Timing utilities","Warn a user once, with uniqueness determined by the …","Warn a user once, with uniqueness determined by the given …","Convert a chrono datetime to the local timezone.","Formats a chrono::DateTime, also localising it to the user…","Formats a chrono::Duration` in the present case. Arguments:","Execute an arbitrary bash script.","User facing error type for Bash functionality.","BashFeatureUnsupported","The result of running a command","BashSyntaxError","The result of an individual command.","InternalError","Get the BashOut from the error.","","","","","","","","","Set the root directory to run the commands in.","","","","","Add a new piece of logic to the bash script. E.g. a line …","Returns the exit code of the last command that was run.","The exit code of the command","The command that was run","All commands that were run, if a command fails, it will be …","","","","","","","","","","","","","","Add an environment variable to the bash script.","","","","","Pretty format the attempted commands, with the exit code …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Returns the stdout AND stderr from the final command that …","Returns the stderr from the final command that was run.","Returns the stdout from the final command that was run.","Create a new Bash builder.","Execute the current contents of the bash script.","Combines the stdout AND stderr from each run command into …","Combines the stderr from each run command into a single …","The stderr of the command","Combines the stdout from each run command into a single …","The stdout of the command","Returns true when the command exited with a zero exit code.","Throw an error if the last command run was not successful.","","","","","","","","","","","","","","","","","","","","A generic trace_stack error to use when you don’t want …","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","FNV1a hash function. Note this is completely insecure, and …","The global logger/tracer for stdout, file and full open …","The global log builder. See the GlobalLog struct for more …","","","","","Build the global log from the configured builder.","Create a builder to configure the global logger.","Write to a custom writer.","","","","","","","","Write to a file:","Force through logs, traces and metrics, useful in e.g. …","See super::global_fns::flush`","Returns the argument unchanged.","Returns the argument unchanged.","Returns the default opentelemetry::metrics::Meter for the …","","","Automatically record system metrics: SYSTEM WIDE:","Calls U::from(self).","Calls U::from(self).","","","Set the minimum level to log for.","A regex that must be satisfied for a log to be accepted by …","Returns a new opentelemetry::metrics::Meter with the …","See super::global_fns::meter`","Opentelemetry types that might be needed downstream. The …","Write to an open telemetry provider via grpc. This works …","Write to an open telemetry provider via http. This works …","Record an exception to the currently active span. Matches …","Register the logger as the global logger/tracer/metric …","Set the response headers from the current span context. So …","See super::global_fns::set_response_headers_from_ctx`","Connect this program’s span to the trace that is …","See super::global_fns::set_span_parent_from_http_headers`","A managed wrapper on creation of the GlobalLog and …","Shutdown the logger, traces and metrics, should be called …","See super::global_fns::shutdown`","Write to stdout:","","","","","","","","","Temporarily make the logger global, for the duration of …","Array of homogeneous values","bool values","f64 values","i64 values","The key part of attribute KeyValue pairs.","A key-value pair describing an attribute.","String values","Wrapper for string-like values","The value part of attribute KeyValue pairs.","Create a KeyValue pair for arrays.","","Returns a reference to the underlying key name","String representation of the Value","Returns a string slice to this value","Create a KeyValue pair for bool values.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a KeyValue pair for f64 values.","","","","","","","","Convert a String to a Key.","Convert a &str to a Key.","Convert a Cow<'static, str> to a Key","Convert a String to a Key.","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","Create a new const Key.","","","Create a KeyValue pair for i64 values.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","The attribute name","Otlp metric types.","Create a new Key.","Create a new KeyValue pair.","","","Create a KeyValue pair for string-like values.","","","","","","","","","","","","","","","","","","","","The attribute value","","","","","An instrument that records increasing values.","An instrument that records a distribution of values.","An async instrument that records increasing values.","An instrument that records independent readings.","An async instrument that records increasing or decreasing …","An SDK implemented instrument that records increasing …","An SDK implemented instrument that records a distribution …","An SDK implemented instrument that records increasing or …","Units denote underlying data units tracked by Meters.","An instrument that records increasing or decreasing values.","Records an increment to the counter.","Records an increment or decrement to the counter.","Records an increment to the counter.","Records an increment or decrement to the counter.","Used for SDKs to downcast instruments in callbacks.","","Used by SDKs to downcast instruments in callbacks.","","Used for SDKs to downcast instruments in callbacks.","","","View unit as &str","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","Create a new counter.","Create a new observable counter.","Create a new gauge","Create a new histogram.","Create a new up down counter.","Create a new observable up down counter.","Create a new Unit from an Into<String>","Records an increment to the counter.","","","Records the state of the instrument.","","Records the increment or decrement to the counter.","Adds an additional value to the distribution.","Adds an additional value to the distribution.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the current process seems to be running in …","Check if a port is listening for a given ipv4 address and …","Derive macro for the redis crate’s FromRedisValue trait …","Internal error.","The producer for the next batch struct sig.","A wrapper around redis to make it more concise to use and …","A command builder struct. Committed with RedisBatch::fire.","Trait implementing the fire() method on a batch, variable …","Implements all the supported redis operations that need to …","Wrapper around a lazy redis connection.","A wrapper on an arbitrary json object to allow reading and …","A borrowed wrapper on an arbitrary json object to writing …","A distributed lock for Redis.","Errors that can occur when trying to lock a resource.","A lua script wrapper. Should be created once per script.","Represents a individual script call with specific args and …","Connect up to a magic redis list that:","A user friendly interface around a redis list item, …","A wrapped item, with a connection too, preventing need to …","The final return type of the batch.","Derive macro for the redis crate’s ToRedisArgs trait to …","When the lock is held by someone else.","When the user has done something wrong.","Add a regular argument. I.e. ARGV[i]","Get a new RedisBatch for this connection that commands can …","","","","","","","","","","","","","","","","","","","","","","","","","Cache an async function in redis with an optional expiry. …","Clear one or more keys.","Clear all the items in the list. (by just deleting the …","Clear all keys under a given namespace","","","","","","","","","","","Get a RedisConn redis can be called with.","Mutref to a redis conn.","Delete the item from the list. Will be a no-op of the item …","Delete a specific item given it’s uid.","Delete multiple items via their ids.","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a distributed redis lock.","Get a distributed redis lock that is held for the duration …","","","","","","","","","","","","","","","","","","","","","","","Check if a key exists.","","","","","","","","","","","","","","Expire an existing key with a new/updated ttl.","The time at which the lock will expire. Must be renewed …","Extend the lifetime of the lock from the previous ttl. …","Add multiple items to the sorted list. Purposely using one …","Redis keys are all prefixed, use this to finalise a key …","Redis keys are all prefixed, use this to finalise a …","Commit the batch and return the result. If redis …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Get a value from a key. Returning None if the key doesn’…","","","","","","","","","","","","","","Used for dlock, the dlock algo is setup with multiple …","Get an internal connection from the pool, connections are …","Escape hatch, access the inner deadpool_redis pool.","","Internal dlock extension/management. Maintain and extend …","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Consume the holder, returning the item, if it exists.","","","","","","","","","","","","","Create a new script invoker for an individual script call.","See RedisTempListItem::item","Access the underlying item, if it exists.","If an item hasn’t been read or written to in this time, …","Add a key argument. I.e. KEYS[i]","The key of the list in redis","If the list hasn’t been read or written to in this time, …","The resource to lock. A combination of the namespace with …","Check if multiple keys exists.","","","","","","","","","","","","","","Get multiple values (MGET) of the same type at once. …","","","","","","","","","","","","","","Set multiple values (MSET) of the same type at once. If …","The namespace of the list in redis (should come in as …","Create the script object. Use include_str!() to allow the …","Create a new holder for a redis list item. All optional to …","Create a new global redis wrapper from the given Redis URL …","Create a dummy holder for a redis list item, useful when …","Add a new item to the sorted list.","Read a specific item given it’s uid.","Read multiple items from the list, ordered from last …","Underlying of RedisTempList::read_multi, but returns the …","","See RedisTempListItem::replace","Replace the contents of an item in the redis list with …","Run an arbitrary redis (lua script).","","","","","","","","","","","","","","Run an arbitrary redis (lua script). But discards any …","","","Set a key to a value with an optional expiry.","Connect up to a magic redis list that:","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","See RedisTempListItem::uid","Access the underlying item’s uid, if it exists.","Unlock the lock manually. Not necessarily needed, the lock …","See RedisTempListItem::update","Fully manage the update of an item back to redis. This …","Update a specific item given it’s uid.","The value for this lock.","Useful helper utility to just get a vec of valid items …","","","","","","","","","","","","","How long to wait before giving up trying to get the lock.","Useful for combining a connection with an item, to prevent …","","","Add an entry to an ordered set (auto creating the set if …","Add multiple entries at once to an ordered set (auto …","HIGHEST TO LOWEST SCORES. Retrieve entries from an ordered …","","","","","","","","","","","","","","LOWEST TO HIGHEST SCORES. Retrieve entries from an ordered …","","","","","","","","","","","","","","remove an entries from an ordered set. …","Remove entries from an ordered set by score range. (range …","A global time recorder, used by the timeit! macro.","A struct for recording time spent in various blocks of …","","","","","","","Format a duration in a human readable format.","Format the logs in a verbose, table format.","Returns the argument unchanged.","","Calls U::from(self).","","Create a new time recorder.","Time a block of code and log to the time recorder.","Using from creation time rather than the specific …","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,0,7,7,9,11,8,7,9,11,8,7,9,11,8,11,8,9,8,11,11,8,9,9,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,7,8,9,11,8,8,7,11,8,9,11,8,7,9,11,8,7,9,11,8,7,8,8,8,9,9,8,8,11,8,11,8,8,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,28,27,28,27,27,28,27,27,28,27,28,27,28,27,27,0,28,28,27,0,28,27,0,28,27,28,27,27,27,0,28,0,27,27,0,28,0,28,0,28,28,0,28,27,28,27,28,27,28,27,28,27,28,46,46,46,46,0,0,46,0,0,42,45,42,46,45,42,42,46,45,43,42,46,45,43,42,46,45,43,42,46,45,43,42,45,42,45,42,46,45,43,42,46,45,43,42,46,45,43,42,46,45,43,42,42,42,42,45,45,45,45,42,42,42,46,46,45,45,43,42,42,42,42,42,46,46,46,46,46,46,46,46,46,45,45,45,45,45,43,42,46,45,43,42,42,45,42,42,46,45,43,42,46,45,43,42,46,45,43,43,0,42,43,42,45,42,42,46,45,43,42,46,45,42,46,45,43,42,46,45,43,42,46,45,43,43,42,46,45,43,0,0,0,0,0,0,0,0,0,0,54,55,56,57,58,58,60,60,61,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,62,62,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,58,58,60,60,61,61,67,64,56,58,60,64,57,61,62,56,56,56,58,58,58,60,60,60,60,64,64,64,64,57,57,57,61,61,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,0,0,0,88,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,0,88,88,70,72,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,72,73,79,73,80,83,84,79,85,80,83,84,79,85,85,101,84,79,79,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,84,79,85,85,73,72,87,70,101,88,80,96,83,84,79,85,80,83,80,80,80,80,83,83,83,83,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,87,87,79,72,72,95,73,73,73,73,73,73,73,73,73,73,73,73,73,88,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,80,80,83,84,79,85,91,73,73,73,73,73,73,73,73,73,73,73,73,73,85,72,85,83,87,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,84,73,72,87,70,101,88,80,96,83,84,79,85,83,101,84,79,70,79,79,87,91,73,73,73,73,73,73,73,73,73,73,73,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,83,84,85,84,79,79,79,79,0,101,84,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,84,79,73,85,80,83,84,79,85,88,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,101,84,87,101,84,79,87,84,73,72,87,70,101,88,80,96,83,84,79,85,87,84,80,96,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,0,0,107,107,107,107,107,107,0,107,107,107,107,107,107,107,107,107,107,107,107],"f":"```````````````{{{d{b}}}{{d{f}}}}{{{d{b}}}h}{{jl}h}```````{nA`}{ce{}{}}0000000{{AbAd}Ab}{AfAf}{A`A`}{{ce}Ah{}{}}0{{Abc}Ab{{Aj{h}}}}{A`Al}```{{}Ab}{Anc{}}0000000{AnAh}000{{Abce}Ab{{Aj{h}}}{{Aj{h}}}}{{AfB`}Bb}{{A`B`}Bb}{{nB`}Bb}0{A`h}{cc{}}00{AfA`}111{{}An}000{ce{}{}}000{c{{Bd{e}}}{}{}}000555<{Ab{{Bf{A`n}}}}66`6`{A`l}{{A`c}{{Bf{Ahc}}}Bh}44{ch{}}{c{{Bj{e}}}{}{}}0000000{cBl{}}0007777`77{{}Bn}{Anc{}}0{AnAh}{{BnB`}Bb}0><;:6554;{{{Cb{C`}}}Cd}``<<<<{Cf{{Bf{ChBn}}}}{{}Cf}{{Cfllll{Cl{{Cb{C`}}}{{Cj{Ah}}}}}Cf}1666655{{Cfce}Cf{{Aj{h}}}{{Aj{Cn}}}}{{}{{Bf{AhBn}}}}{Ch{{Bf{AhBn}}}}{cc{}}0{{}D`}{{}An}0{D`{{Bf{AhBn}}}}{ce{}{}}0{c{{Bd{e}}}{}{}}0{{CfDb}{{Bf{CfBn}}}}{{CfDd}{{Bf{CfBn}}}}{cD`{{Aj{{Dh{Df}}}}}}{{Chc}{{Bf{D`Bn}}}{{Aj{{Dh{Df}}}}}}`{{CfDjce}Cf{{Aj{h}}}{{Aj{h}}}}{{Cfceg}Cf{{Aj{h}}}{{Aj{h}}}{{Aj{h}}}}{{ce}Ah{{Aj{h}}}{{Aj{h}}}}={{{Dl{c}}}{{Bf{AhBn}}}{}}{{Ch{Dl{c}}}{{Bf{AhBn}}}{}}{{DnE`}{{Bf{AhBn}}}}{{ChDnE`}{{Bf{AhBn}}}}{Db{{Bf{AhBn}}}}{{}{{Bf{AhBn}}}}{Ch{{Bf{AhBn}}}}{{Cfll}Cf}{c{{Bj{e}}}{}{}}000{cBl{}}0{ce{}{}}0{{Che}{{Bf{cBn}}}{}{{Eb{}{{Cj{c}}}}}}`````````{{Edc}Ef{{Aj{Eh}}}}{EjDf}{EdDf}{El{{Dh{Df}}}}2{{Edc}Ef{{Aj{l}}}}66666666{EdEd}{ElEl}{EjEj}{EfEf}{{ce}Ah{}{}}000{{EdEd}En}{{EjEj}En}{{ce}En{}{}}0{Anc{}}0000000{AnAh}000{{EdEd}l}{{ElEl}l}{{EjEj}l}{{EfEf}l}{{ce}l{}{}}0000000{{EdF`}Ef}{{EdB`}{{Bj{AhFb}}}}0{{ElB`}{{Bj{AhFb}}}}0{{EjB`}{{Bj{AhFb}}}}0{{EfB`}{{Bj{AhFb}}}}{hEd}{DfEd}{{{Dh{Df}}}Ed}{{{Fd{Df}}}Ed}{cc{}}{hEl}{EjEl}{{{Fd{Df}}}El}{F`El}{DfEl}5{FfEl}{{{Dh{Df}}}El}{lEl}{DfEj}{hEj}:{{{Fd{Df}}}Ej}{{{Dh{Df}}}Ej}<<<<Report<AnyErr> objects with string …","Chrono utilities","Command line interface utilities.","A macro for building Report<ArbitraryErrorStackErr> …","Error handling utilities.","Hashing utilities.","Logging utilities","Completely miscellaneous utilities","When working in a function that cannot return a result, …","When working in a function that cannot return a result, …","Redis utilities","Time a block of code and log to the global time recorder.","Timing utilities","Warn a user once, with uniqueness determined by the …","Warn a user once, with uniqueness determined by the given …","Convert a chrono datetime to the local timezone.","Formats a chrono::DateTime, also localising it to the user…","Formats a chrono::Duration` in the present case. Arguments:","Execute an arbitrary bash script.","User facing error type for Bash functionality.","BashFeatureUnsupported","The result of running a command","BashSyntaxError","The result of an individual command.","InternalError","Get the BashOut from the error.","","","","","","","","","Set the root directory to run the commands in.","","","","","Add a new piece of logic to the bash script. E.g. a line …","Returns the exit code of the last command that was run.","The exit code of the command","The command that was run","All commands that were run, if a command fails, it will be …","","","","","","","","","","","","","","Add an environment variable to the bash script.","","","","","Pretty format the attempted commands, with the exit code …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Returns the stdout AND stderr from the final command that …","Returns the stderr from the final command that was run.","Returns the stdout from the final command that was run.","Create a new Bash builder.","Execute the current contents of the bash script.","Combines the stdout AND stderr from each run command into …","Combines the stderr from each run command into a single …","The stderr of the command","Combines the stdout from each run command into a single …","The stdout of the command","Returns true when the command exited with a zero exit code.","Throw an error if the last command run was not successful.","","","","","","","","","","","","","","","","","","","","A generic trace_stack error to use when you don’t want …","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","FNV1a hash function. Note this is completely insecure, and …","The global logger/tracer for stdout, file and full open …","The global log builder. See the GlobalLog struct for more …","","","","","Build the global log from the configured builder.","Create a builder to configure the global logger.","Write to a custom writer.","","","","","","","","Write to a file:","Force through logs, traces and metrics, useful in e.g. …","See super::global_fns::flush`","Returns the argument unchanged.","Returns the argument unchanged.","Returns the default opentelemetry::metrics::Meter for the …","","","Automatically record system metrics: SYSTEM WIDE:","Calls U::from(self).","Calls U::from(self).","","","Set the minimum level to log for.","A regex that must be satisfied for a log to be accepted by …","Returns a new opentelemetry::metrics::Meter with the …","See super::global_fns::meter`","Opentelemetry types that might be needed downstream. The …","Write to an open telemetry provider via grpc. This works …","Write to an open telemetry provider via http. This works …","Record an exception to the currently active span. Matches …","Register the logger as the global logger/tracer/metric …","Set the response headers from the current span context. So …","See super::global_fns::set_response_headers_from_ctx`","Connect this program’s span to the trace that is …","See super::global_fns::set_span_parent_from_http_headers`","A managed wrapper on creation of the GlobalLog and …","Shutdown the logger, traces and metrics, should be called …","See super::global_fns::shutdown`","Write to stdout:","","","","","","","","","Temporarily make the logger global, for the duration of …","Array of homogeneous values","bool values","f64 values","i64 values","The key part of attribute KeyValue pairs.","A key-value pair describing an attribute.","String values","Wrapper for string-like values","The value part of attribute KeyValue pairs.","Create a KeyValue pair for arrays.","","Returns a reference to the underlying key name","String representation of the Value","Returns a string slice to this value","Create a KeyValue pair for bool values.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a KeyValue pair for f64 values.","","","","","","","","Convert a String to a Key.","Returns the argument unchanged.","Convert a &str to a Key.","Convert a Cow<'static, str> to a Key","Convert a String to a Key.","Returns the argument unchanged.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Create a new const Key.","","","Create a KeyValue pair for i64 values.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","The attribute name","Otlp metric types.","Create a new Key.","Create a new KeyValue pair.","","","Create a KeyValue pair for string-like values.","","","","","","","","","","","","","","","","","","","","The attribute value","","","","","An instrument that records increasing values.","An instrument that records a distribution of values.","An async instrument that records increasing values.","An instrument that records independent readings.","An async instrument that records increasing or decreasing …","An SDK implemented instrument that records increasing …","An SDK implemented instrument that records a distribution …","An SDK implemented instrument that records increasing or …","Units denote underlying data units tracked by Meters.","An instrument that records increasing or decreasing values.","Records an increment to the counter.","Records an increment or decrement to the counter.","Records an increment to the counter.","Records an increment or decrement to the counter.","Used for SDKs to downcast instruments in callbacks.","","","Used by SDKs to downcast instruments in callbacks.","","Used for SDKs to downcast instruments in callbacks.","","View unit as &str","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","Create a new counter.","Create a new observable counter.","Create a new gauge","Create a new histogram.","Create a new up down counter.","Create a new observable up down counter.","Create a new Unit from an Into<String>","Records an increment to the counter.","","","Records the state of the instrument.","Records the increment or decrement to the counter.","","Adds an additional value to the distribution.","Adds an additional value to the distribution.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the current process seems to be running in …","Check if a port is listening for a given ipv4 address and …","Derive macro for the redis crate’s FromRedisValue trait …","Internal error.","The producer for the next batch struct sig.","A wrapper around redis to make it more concise to use and …","A command builder struct. Committed with RedisBatch::fire.","Trait implementing the fire() method on a batch, variable …","Implements all the supported redis operations that need to …","Wrapper around a lazy redis connection.","A wrapper on an arbitrary json object to allow reading and …","A borrowed wrapper on an arbitrary json object to writing …","A distributed lock for Redis.","Errors that can occur when trying to lock a resource.","A lua script wrapper. Should be created once per script.","Represents a individual script call with specific args and …","Connect up to a magic redis list that:","A user friendly interface around a redis list item, …","A wrapped item, with a connection too, preventing need to …","The final return type of the batch.","Derive macro for the redis crate’s ToRedisArgs trait to …","When the lock is held by someone else.","When the user has done something wrong.","Add a regular argument. I.e. ARGV[i]","Get a new RedisBatch for this connection that commands can …","","","","","","","","","","","","","","","","","","","","","","","","","Cache an async function in redis with an optional expiry. …","Clear one or more keys.","Clear all the items in the list. (by just deleting the …","Clear all keys under a given namespace","","","","","","","","","","","Get a RedisConn redis can be called with.","Mutref to a redis conn.","Delete the item from the list. Will be a no-op of the item …","Delete a specific item given it’s uid.","Delete multiple items via their ids.","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a distributed redis lock.","Get a distributed redis lock that is held for the duration …","","","","","","","","","","","","","","","","","","","","","","","Check if a key exists.","","","","","","","","","","","","","","Expire an existing key with a new/updated ttl.","The time at which the lock will expire. Must be renewed …","Extend the lifetime of the lock from the previous ttl. …","Add multiple items to the sorted list. Purposely using one …","Redis keys are all prefixed, use this to finalise a key …","Redis keys are all prefixed, use this to finalise a …","Commit the batch and return the result. If redis …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Get a value from a key. Returning None if the key doesn’…","","","","","","","","","","","","","","Used for dlock, the dlock algo is setup with multiple …","Get an internal connection from the pool, connections are …","Escape hatch, access the inner deadpool_redis pool.","","Internal dlock extension/management. Maintain and extend …","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Consume the holder, returning the item, if it exists.","","","","","","","","","","","","","Create a new script invoker for an individual script call.","See RedisTempListItem::item","Access the underlying item, if it exists.","If an item hasn’t been read or written to in this time, …","Add a key argument. I.e. KEYS[i]","The key of the list in redis","If the list hasn’t been read or written to in this time, …","The resource to lock. A combination of the namespace with …","Check if multiple keys exists.","","","","","","","","","","","","","","Get multiple values (MGET) of the same type at once. …","","","","","","","","","","","","","","Set multiple values (MSET) of the same type at once. If …","The namespace of the list in redis (should come in as …","Create the script object. Use include_str!() to allow the …","Create a new holder for a redis list item. All optional to …","Create a new global redis wrapper from the given Redis URL …","Create a dummy holder for a redis list item, useful when …","Add a new item to the sorted list.","Read a specific item given it’s uid.","Read multiple items from the list, ordered from last …","Underlying of RedisTempList::read_multi, but returns the …","","See RedisTempListItem::replace","Replace the contents of an item in the redis list with …","Run an arbitrary redis (lua script).","","","","","","","","","","","","","","Run an arbitrary redis (lua script). But discards any …","","","Set a key to a value with an optional expiry.","Connect up to a magic redis list that:","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","See RedisTempListItem::uid","Access the underlying item’s uid, if it exists.","Unlock the lock manually. Not necessarily needed, the lock …","See RedisTempListItem::update","Fully manage the update of an item back to redis. This …","Update a specific item given it’s uid.","The value for this lock.","Useful helper utility to just get a vec of valid items …","","","","","","","","","","","","","How long to wait before giving up trying to get the lock.","Useful for combining a connection with an item, to prevent …","","","Add an entry to an ordered set (auto creating the set if …","Add multiple entries at once to an ordered set (auto …","HIGHEST TO LOWEST SCORES. Retrieve entries from an ordered …","","","","","","","","","","","","","","LOWEST TO HIGHEST SCORES. Retrieve entries from an ordered …","","","","","","","","","","","","","","remove an entries from an ordered set. …","Remove entries from an ordered set by score range. (range …","A global time recorder, used by the timeit! macro.","A struct for recording time spent in various blocks of …","","","","","","","Format a duration in a human readable format.","Format the logs in a verbose, table format.","Returns the argument unchanged.","","Calls U::from(self).","","Create a new time recorder.","Time a block of code and log to the time recorder.","Using from creation time rather than the specific …","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,0,7,7,9,11,8,7,9,11,8,7,9,11,8,11,8,9,8,11,11,8,9,9,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,7,8,9,11,8,8,7,11,8,9,11,8,7,9,11,8,7,9,11,8,7,8,8,8,9,9,8,8,11,8,11,8,8,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,9,11,8,7,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,28,27,28,27,27,28,27,27,28,27,28,27,28,27,27,0,28,28,27,0,28,27,0,28,27,28,27,27,27,0,28,0,27,27,0,28,0,28,0,28,28,0,28,27,28,27,28,27,28,27,28,27,28,46,46,46,46,0,0,46,0,0,42,45,42,46,45,42,42,46,45,43,42,46,45,43,42,46,45,43,42,46,45,43,42,45,42,45,42,46,45,43,42,46,45,43,42,46,45,43,42,46,45,43,42,42,42,42,45,45,45,45,42,42,42,46,46,45,45,43,42,42,42,42,42,46,46,46,46,46,46,46,46,46,45,45,45,45,45,43,42,46,45,43,42,42,45,42,42,46,45,43,42,46,45,43,42,46,45,43,43,0,42,43,42,45,42,42,46,45,43,42,46,45,42,46,45,43,42,46,45,43,42,46,45,43,43,42,46,45,43,0,0,0,0,0,0,0,0,0,0,54,55,56,57,58,58,60,60,61,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,62,62,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,58,58,60,60,61,61,67,64,56,58,60,64,57,61,62,56,56,56,58,58,58,60,60,60,60,64,64,64,64,57,57,57,61,61,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,56,58,60,64,57,61,62,0,0,0,88,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,0,88,88,70,72,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,72,73,79,73,80,83,84,79,85,80,83,84,79,85,85,101,84,79,79,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,84,79,85,85,73,72,87,70,101,88,80,96,83,84,79,85,80,83,80,80,80,80,83,83,83,83,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,87,87,79,72,72,95,73,73,73,73,73,73,73,73,73,73,73,73,73,88,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,80,80,83,84,79,85,91,73,73,73,73,73,73,73,73,73,73,73,73,73,85,72,85,83,87,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,84,73,72,87,70,101,88,80,96,83,84,79,85,83,101,84,79,70,79,79,87,91,73,73,73,73,73,73,73,73,73,73,73,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,83,84,85,84,79,79,79,79,0,101,84,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,84,79,73,85,80,83,84,79,85,88,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,73,72,87,70,101,88,80,96,83,84,79,85,101,84,87,101,84,79,87,84,73,72,87,70,101,88,80,96,83,84,79,85,87,84,80,96,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,91,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,0,0,107,107,107,107,107,107,0,107,107,107,107,107,107,107,107,107,107,107,107],"f":"```````````````{{{d{b}}}{{d{f}}}}{{{d{b}}}h}{{jl}h}```````{nA`}{ce{}{}}0000000{{AbAd}Ab}{AfAf}{A`A`}{{ce}Ah{}{}}0{{Abc}Ab{{Aj{h}}}}{A`Al}```{{}Ab}{Anc{}}0000000{AnAh}000{{Abce}Ab{{Aj{h}}}{{Aj{h}}}}{{AfB`}Bb}{{A`B`}Bb}{{nB`}Bb}0{A`h}{cc{}}00{AfA`}111{{}An}000{ce{}{}}000{c{{Bd{e}}}{}{}}000555<{Ab{{Bf{A`n}}}}66`6`{A`l}{{A`c}{{Bf{Ahc}}}Bh}44{ch{}}{c{{Bj{e}}}{}{}}0000000{cBl{}}0007777`77{{}Bn}{Anc{}}0{AnAh}{{BnB`}Bb}0><;:6554;{{{Cb{C`}}}Cd}``<<<<{Cf{{Bf{ChBn}}}}{{}Cf}{{Cfllll{Cl{{Cb{C`}}}{{Cj{Ah}}}}}Cf}1666655{{Cfce}Cf{{Aj{h}}}{{Aj{Cn}}}}{{}{{Bf{AhBn}}}}{Ch{{Bf{AhBn}}}}{cc{}}0{{}D`}{{}An}0{D`{{Bf{AhBn}}}}{ce{}{}}0{c{{Bd{e}}}{}{}}0{{CfDb}{{Bf{CfBn}}}}{{CfDd}{{Bf{CfBn}}}}{cD`{{Aj{{Dh{Df}}}}}}{{Chc}{{Bf{D`Bn}}}{{Aj{{Dh{Df}}}}}}`{{CfDjce}Cf{{Aj{h}}}{{Aj{h}}}}{{Cfceg}Cf{{Aj{h}}}{{Aj{h}}}{{Aj{h}}}}{{ce}Ah{{Aj{h}}}{{Aj{h}}}}={{{Dl{c}}}{{Bf{AhBn}}}{}}{{Ch{Dl{c}}}{{Bf{AhBn}}}{}}{{DnE`}{{Bf{AhBn}}}}{{ChDnE`}{{Bf{AhBn}}}}{Db{{Bf{AhBn}}}}{{}{{Bf{AhBn}}}}{Ch{{Bf{AhBn}}}}{{Cfll}Cf}{c{{Bj{e}}}{}{}}000{cBl{}}0{ce{}{}}0{{Che}{{Bf{cBn}}}{}{{Eb{}{{Cj{c}}}}}}`````````{{Edc}Ef{{Aj{Eh}}}}{EjDf}{EdDf}{El{{Dh{Df}}}}2{{Edc}Ef{{Aj{l}}}}66666666{EdEd}{ElEl}{EjEj}{EfEf}{{ce}Ah{}{}}000{{EdEd}En}{{EjEj}En}{{ce}En{}{}}0{Anc{}}0000000{AnAh}000{{EdEd}l}{{ElEl}l}{{EjEj}l}{{EfEf}l}{{ce}l{}{}}0000000{{EdF`}Ef}{{EdB`}{{Bj{AhFb}}}}0{{ElB`}{{Bj{AhFb}}}}0{{EjB`}{{Bj{AhFb}}}}0{{EfB`}{{Bj{AhFb}}}}{hEd}{cc{}}{DfEd}{{{Dh{Df}}}Ed}{{{Fd{Df}}}Ed}3{{{Dh{Df}}}El}{lEl}{{{Fd{Df}}}El}{hEl}{FfEl}{EjEl}{F`El}{DfEl}{{{Dh{Df}}}Ej}{{{Fd{Df}}}Ej}{DfEj}{hEj}??????>{{Edc}AhFh}{{Ejc}AhFh}{{EdFf}Ef}{{}An}000{ce{}{}}000{c{{Bd{e}}}{}{}}000``{cEd{{Aj{Ed}}}}{{ce}Ef{{Aj{Ed}}}{{Aj{El}}}}{{EdEd}{{Fj{En}}}}{{EjEj}{{Fj{En}}}}{{Edc}Ef{{Aj{Ej}}}}6666{ch{}}00{c{{Bj{e}}}{}{}}0000000{cBl{}}000`9999``````````{{Flc{Cb{Ef}}}Ah{}}{{Fnc{Cb{Ef}}}Ah{}}{{{G`{c}}c{Cb{Ef}}}Ah{}}{{{Gb{c}}c{Cb{Ef}}}Ah{}}{{{Gd{c}}}{{Fd{Gf}}}{}}0{{{Gh{c}}}{{Fd{Gf}}}{}}0{{{Gj{c}}}{{Fd{Gf}}}{}}0{GlDf}0{ce{}{}}0000000000000{{{G`{c}}}{{G`{c}}}Gn}{{{Gd{c}}}{{Gd{c}}}Gn}{{{Gh{c}}}{{Gh{c}}}Gn}{{{H`{c}}}{{H`{c}}}Gn}{{{Gb{c}}}{{Gb{c}}}Gn}{{{Gj{c}}}{{Gj{c}}}Gn}{GlGl}{{ce}Ah{}{}}000000{{}Gl}{Anc{}}0000000000000{AnAh}000000{{GlGl}l}{{ce}l{}{}}000{{{G`{c}}B`}{{Bj{AhFb}}}Hb}{{{Gd{c}}B`}{{Bj{AhFb}}}{}}{{{Gh{c}}B`}{{Bj{AhFb}}}Hb}{{{H`{c}}B`}{{Bj{AhFb}}}Hb}{{{Gb{c}}B`}{{Bj{AhFb}}}Hb}{{{Gj{c}}B`}{{Bj{AhFb}}}Hb}{{GlB`}{{Bj{AhFb}}}}{cc{}}0000000000000{{Glc}AhFh}{{}An}000000{ce{}{}}000000{c{{Bd{e}}}{}{}}000000{{{Fd{Fl}}}{{G`{c}}}{}}{{{Fd{Hd}}}{{Gd{c}}}{}}{{{Fd{Hd}}}{{Gh{c}}}{}}{{{Fd{Hf}}}{{H`{c}}}{}}{{{Fd{Fn}}}{{Gb{c}}}{}}{{{Fd{Hd}}}{{Gj{c}}}{}}{cGl{{Aj{{Dh{Df}}}}}}{{{Gd{c}}c{Cb{Ef}}}Ah{}}0{{{Gh{c}}c{Cb{Ef}}}Ah{}}0{{{Gj{c}}c{Cb{Ef}}}Ah{}}0{{Hfc{Cb{Ef}}}Ah{}}{{{H`{c}}c{Cb{Ef}}}Ah{}}======={{{Hh{{G`{Cd}}}}}{{Bj{{G`{Cd}}}}}}{c{{Bj{e}}}{}{}}{{{Hh{{G`{F`}}}}}{{Bj{{G`{F`}}}}}}{{{Hj{{Gd{F`}}F`}}}{{Bj{{Gd{F`}}}}}}2{{{Hj{{Gd{Cd}}Cd}}}{{Bj{{Gd{Cd}}}}}}{{{Hj{{Gh{Cd}}Cd}}}{{Bj{{Gh{Cd}}}}}}4{{{Hj{{Gh{Ff}}Ff}}}{{Bj{{Gh{Ff}}}}}}{{{Hj{{Gh{F`}}F`}}}{{Bj{{Gh{F`}}}}}}{{{Hh{{H`{Cd}}}}}{{Bj{{H`{Cd}}}}}}{{{Hh{{H`{F`}}}}}{{Bj{{H`{F`}}}}}}{{{Hh{{H`{Ff}}}}}{{Bj{{H`{Ff}}}}}}99{{{Hh{{Gb{Ff}}}}}{{Bj{{Gb{Ff}}}}}}{{{Hh{{Gb{F`}}}}}{{Bj{{Gb{F`}}}}}};{{{Hj{{Gj{F`}}F`}}}{{Bj{{Gj{F`}}}}}}{{{Hj{{Gj{Ff}}Ff}}}{{Bj{{Gj{Ff}}}}}}========{cBl{}}000000{ce{}{}}000000{{}l}{{DfDj}{{Bf{lBn}}}}`````````````````````{{Hlc}HlHn}{I`{{Ib{Ah}}}}444444444444444444444444{{I`Dfc{Fj{Id}}i}{{Bf{eBn}}}{{Aj{{Dh{Df}}}}}{IfHn}{{Ih{}{{Cj{{Bf{eBn}}}}}}}{{Eb{}{{Cj{g}}}}}}{{{Ib{c}}Dfe}{{Ib{c}}}{}{{Il{}{{Ij{Df}}}}}}{{InI`}Ah}{{{Ib{c}}Df}{{Ib{c}}}{}}{{{J`{c}}}{{J`{c}}}{GnJbJd}}{JfJf}{{{Jh{c}}}{{Jh{c}}}Gn}{InIn}{JjJj}{{ce}Ah{}{}}0000{JjI`}`{{{Jh{c}}I`}Ah{JbJd}}{{InI`Df}Ah}{{InI`e}Ah{{Aj{h}}}{{Il{}{{Ij{c}}}}}}{Anc{}}00000000000000000000000{c{{Bj{{Jh{e}}}}}JlJd}{c{{Bj{In}}}Jl}{{JjDfDfId{Fj{Id}}}{{Bf{JnK`}}}}{{JjDfDf{Fj{Id}}e}{{Bf{cK`}}}{}{{Ih{}{{Cj{{Bf{cBn}}}}}}}}{AnAh}00000000000{{{J`{c}}{J`{c}}}l{KbJbJd}}{{JfJf}l}{{ce}l{}{}}0000000{{{Kf{}{{Kd{c}}}}DfDf}c{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}DfDf}AiIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAc}}}}DfDf}AeIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAa}}}}DfDf}AcIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}DfDf}AkIfIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegi}}}}DfDf}kIfIfIfIf{}}{{{Ib{{Kh{ce}}}}DfDf}gIfIf{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}DfDf}AgIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{Ah}}DfDf}c{}}{{{Ib{{Kh{ceg}}}}DfDf}iIfIfIf{}}{{{Ib{{Kh{cegikmo}}}}DfDf}AaIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikm}}}}DfDf}oIfIfIfIfIfIf{}}{{{Ib{{Kh{c}}}}DfDf}eIf{}}{{{Ib{{Kh{cegik}}}}DfDf}mIfIfIfIfIf{}}{{{Ib{c}}DfDfId}{{Ib{c}}}{}}`{{JnId}{{Bf{lK`}}}}{{{Fd{In}}I`e}{{Kj{{Jh{c}}}}}{JbJd}{{Il{}{{Ij{c}}}}}}{{I`Df{Dh{Df}}}h}{{I`Df}h}{{{Kn{}{{Kl{c}}}}}{{`{{Ih{}{{Cj{{Fj{c}}}}}}}}}{}}{{{Ib{Ah}}}{{Fj{Ah}}}}{{{Ib{{Kh{cegikmoAaAc}}}}}{{Fj{{Kh{cegikmoAaAc}}}}}IfIfIfIfIfIfIfIfIf}{{{Ib{{Kh{cegikmo}}}}}{{Fj{{Kh{cegikmo}}}}}IfIfIfIfIfIfIf}{{{Ib{{Kh{cegikmoAa}}}}}{{Fj{{Kh{cegikmoAa}}}}}IfIfIfIfIfIfIfIf}{{{Ib{{Kh{cegikm}}}}}{{Fj{{Kh{cegikm}}}}}IfIfIfIfIfIf}{{{Ib{{Kh{ceg}}}}}{{Fj{{Kh{ceg}}}}}IfIfIf}{{{Ib{{Kh{cegik}}}}}{{Fj{{Kh{cegik}}}}}IfIfIfIfIf}{{{Ib{{Kh{ce}}}}}{{Fj{{Kh{ce}}}}}IfIf}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}}{{Fj{{Kh{cegikmoAaAcAeAg}}}}}IfIfIfIfIfIfIfIfIfIfIf}{{{Ib{{Kh{cegi}}}}}{{Fj{{Kh{cegi}}}}}IfIfIfIf}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}}{{Fj{{Kh{cegikmoAaAcAeAgAi}}}}}IfIfIfIfIfIfIfIfIfIfIfIf}{{{Ib{{Kh{c}}}}}{{Fj{c}}}If}{{{Ib{{Kh{cegikmoAaAcAe}}}}}{{Fj{{Kh{cegikmoAaAcAe}}}}}IfIfIfIfIfIfIfIfIfIf}{{K`B`}Bb}0{{{J`{c}}B`}Bb{HbJbJd}}{{{L`{c}}B`}Bb{JdHb}}{{JfB`}Bb}{{{Jh{c}}B`}BbHb}{{InB`}Bb}{{JjB`}Bb}{cc{}}00000000000{Lb{{Ld{{J`{c}}}}}{JbJd}}11111{{{Kf{}{{Kd{c}}}}DfDf}c{}}{{{Ib{{Kh{cegikmo}}}}DfDf}AaIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegi}}}}DfDf}kIfIfIfIf{}}{{{Ib{{Kh{c}}}}DfDf}eIf{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}DfDf}AkIfIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{Ah}}DfDf}c{}}{{{Ib{{Kh{cegikmoAa}}}}DfDf}AcIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegik}}}}DfDf}mIfIfIfIfIf{}}{{{Ib{{Kh{ceg}}}}DfDf}iIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}DfDf}AgIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{ce}}}}DfDf}gIfIf{}}{{{Ib{{Kh{cegikmoAaAc}}}}DfDf}AeIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}DfDf}AiIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikm}}}}DfDf}oIfIfIfIfIfIf{}}{Jj{{Kj{I`}}}}{I`{{Fj{Lf}}}}{JjLh}{{Jfc}AhFh}{{Jne}{{Bf{cK`}}}{}{{Ih{}{{Cj{{Bf{cBn}}}}}}}}{{}An}00000000000{ce{}{}}00000000000{{{Jh{c}}}{{Fj{c}}}{JbJd}}{c{{Bd{e}}}{}{}}00000000000{JfHl}{{{Lj{c}}}{{Fj{c}}}{JbJd}}3`{{Hlc}HlHn}```{{{Kf{}{{Kd{c}}}}Dfe}c{}{{Il{}{{Ij{Df}}}}}}{{{Ib{{Kh{cegikm}}}}Dfo}AaIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmoAaAc}}}}DfAe}AgIfIfIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}DfAi}AkIfIfIfIfIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}DfAg}AiIfIfIfIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{Ah}}Dfc}e{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{ceg}}}}Dfi}kIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{c}}}}Dfe}gIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}DfAk}AmIfIfIfIfIfIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmoAa}}}}DfAc}AeIfIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegi}}}}Dfk}mIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{ce}}}}Dfg}iIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegik}}}}Dfm}oIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Ib{{Kh{cegikmo}}}}DfAa}AcIfIfIfIfIfIfIf{{Il{}{{Ij{Df}}}}}{}}{{{Kf{}{{Kd{c}}}}Dfg}c{}{{Ll{Df}}}{{Il{}{{Ij{e}}}}}}{{{Ib{Ah}}Dfe}g{{Ll{Df}}}{{Il{}{{Ij{c}}}}}{}}{{{Ib{{Kh{cegi}}}}Dfm}oIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{k}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}DfAk}AmIfIfIfIfIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Ai}}}}}{}}{{{Ib{{Kh{cegikm}}}}DfAa}AcIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{o}}}}}{}}{{{Ib{{Kh{cegik}}}}Dfo}AaIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{m}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}DfAi}AkIfIfIfIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Ag}}}}}{}}{{{Ib{{Kh{ceg}}}}Dfk}mIfIfIf{{Ll{Df}}}{{Il{}{{Ij{i}}}}}{}}{{{Ib{{Kh{ce}}}}Dfi}kIfIf{{Ll{Df}}}{{Il{}{{Ij{g}}}}}{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}DfAm}AoIfIfIfIfIfIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Ak}}}}}{}}{{{Ib{{Kh{cegikmoAaAc}}}}DfAg}AiIfIfIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Ae}}}}}{}}{{{Ib{{Kh{c}}}}Dfg}iIf{{Ll{Df}}}{{Il{}{{Ij{e}}}}}{}}{{{Ib{{Kh{cegikmoAa}}}}DfAe}AgIfIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Ac}}}}}{}}{{{Ib{{Kh{cegikmo}}}}DfAc}AeIfIfIfIfIfIfIf{{Ll{Df}}}{{Il{}{{Ij{Aa}}}}}{}}{{{Ib{c}}Dfi{Fj{Id}}}{{Ib{c}}}{}{{Ll{Df}}}Hn{{Il{}{{Ij{{Kh{eg}}}}}}}}`{DfJf}{{{Fj{h}}{Fj{c}}{Fj{{Fd{In}}}}}{{Jh{c}}}{JbJd}}{{ce}{{Bf{JjBn}}}{{Aj{h}}}{{Aj{h}}}}{{}{{Jh{c}}}{JbJd}}{{{Fd{In}}I`c}{{Jh{c}}}{JbJd}}{{{Fd{In}}I`Df}{{Jh{c}}}{JbJd}}{{{Fd{In}}I`{Fj{Ln}}}{{Kj{{Jh{c}}}}}{JbJd}}{{InI`{Fj{Ln}}}{{Kj{{Kh{Ffhc}}}}}{JbJd}}`{{{Lj{c}}e}Ah{JbJd}{{Eb{}{{Cj{c}}}}}}{{{Jh{c}}I`e}Ah{JbJd}{{Eb{}{{Cj{c}}}}}}{{{Kf{}{{Kd{c}}}}Hl}c{}}{{{Ib{{Kh{cegikmo}}}}Hl}AaIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}Hl}AkIfIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{Ah}}Hl}c{}}{{{Ib{{Kh{cegikmoAaAc}}}}Hl}AeIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}Hl}AiIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{ceg}}}}Hl}iIfIfIf{}}{{{Ib{{Kh{cegikm}}}}Hl}oIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}Hl}AgIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAa}}}}Hl}AcIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{c}}}}Hl}eIf{}}{{{Ib{{Kh{cegik}}}}Hl}mIfIfIfIfIf{}}{{{Ib{{Kh{ce}}}}Hl}gIfIf{}}{{{Ib{{Kh{cegi}}}}Hl}kIfIfIfIf{}}{{{Ib{c}}Hl}{{Ib{c}}}{}}{{{Jh{c}}e}BjJbM`}{{Inc}BjM`}{{{Ib{c}}DfDfe{Fj{Id}}}{{Ib{c}}}{}Hn}{{JjDfcIdId}{{Fd{In}}}{{Aj{h}}}}{ce{}{}}0000{ch{}}{c{{Bj{e}}}{}{}}00000000000000000000000{cBl{}}00000000000{{{Lj{c}}}{{Fj{Df}}}{JbJd}}{{{Jh{c}}}{{Fj{Df}}}{JbJd}}{Jnl}{{{Lj{c}}e}Ah{JbJd}{{Eb{c}}}}{{{Jh{c}}I`e}Ah{JbJd}{{Eb{c}}}}{{InI`Dfc}AhJd}`{{{Kj{{Jh{c}}}}}{{Kj{c}}}{JbJd}}::::::::::::`{{{Jh{c}}I`}{{Lj{c}}}{JbJd}}{{{J`{c}}e}Ah{JbJd}{MbMd}}{{{L`{c}}e}AhJd{MbMd}}{{{Ib{c}}DfDf{Fj{Id}}Ffe}{{Ib{c}}}{}Hn}{{{Ib{c}}DfDf{Fj{Id}}{Cb{{Kh{Ffe}}}}}{{Ib{c}}}{}Hn}{{{Kf{}{{Kd{c}}}}DfDfFfFf{Fj{Ln}}}c{}}{{{Ib{Ah}}DfDfFfFf{Fj{Ln}}}c{}}{{{Ib{{Kh{cegikm}}}}DfDfFfFf{Fj{Ln}}}oIfIfIfIfIfIf{}}{{{Ib{{Kh{cegik}}}}DfDfFfFf{Fj{Ln}}}mIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAg}}}}DfDfFfFf{Fj{Ln}}}AiIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{ceg}}}}DfDfFfFf{Fj{Ln}}}iIfIfIf{}}{{{Ib{{Kh{cegikmo}}}}DfDfFfFf{Fj{Ln}}}AaIfIfIfIfIfIfIf{}}{{{Ib{{Kh{ce}}}}DfDfFfFf{Fj{Ln}}}gIfIf{}}{{{Ib{{Kh{cegikmoAaAcAeAgAi}}}}DfDfFfFf{Fj{Ln}}}AkIfIfIfIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegi}}}}DfDfFfFf{Fj{Ln}}}kIfIfIfIf{}}{{{Ib{{Kh{cegikmoAaAc}}}}DfDfFfFf{Fj{Ln}}}AeIfIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{cegikmoAa}}}}DfDfFfFf{Fj{Ln}}}AcIfIfIfIfIfIfIfIf{}}{{{Ib{{Kh{c}}}}DfDfFfFf{Fj{Ln}}}eIf{}}{{{Ib{{Kh{cegikmoAaAcAe}}}}DfDfFfFf{Fj{Ln}}}AgIfIfIfIfIfIfIfIfIfIf{}}=4:;2105367<89{{{Ib{c}}DfDfg}{{Ib{c}}}{}Hn{{Il{}{{Ij{e}}}}}}{{{Ib{c}}DfDfFfFf}{{Ib{c}}}{}}``{ce{}{}}0{{}Mf}{Anc{}}0{AnAh}{Idh}{Mf{{Bf{hBn}}}}{cc{}}{{}An}7{c{{Bd{e}}}{}{}}7{{MfDfe}c{}{{Eb{}{{Cj{c}}}}}}{Mf{{Bf{IdBn}}}}{c{{Bj{e}}}{}{}}0{cBl{}}<","c":[],"p":[[5,"Utc",930],[5,"DateTime",931],[5,"Local",932],[5,"String",933],[8,"Duration",934],[1,"bool"],[6,"BashErr",18],[5,"BashOut",18],[5,"Bash",18],[5,"Path",935],[5,"CmdResult",18],[1,"unit"],[10,"Into",936],[1,"i32"],[1,"usize"],[5,"Formatter",937],[8,"Result",937],[5,"Request",938],[8,"Result",939],[10,"Context",940],[6,"Result",941],[5,"TypeId",942],[5,"AnyErr",113],[1,"u8"],[1,"slice"],[1,"u64"],[5,"GlobalLogBuilder",132],[5,"GlobalLog",132],[17,"Output"],[1,"fn"],[5,"PathBuf",935],[5,"Meter",943],[5,"Level",944],[5,"Regex",945],[1,"str"],[6,"Cow",946],[1,"u16"],[5,"Response",947],[5,"Span",948],[5,"HeaderMap",949],[10,"FnOnce",950],[5,"Key",187],[5,"KeyValue",187],[6,"Array",951],[5,"StringValue",187],[6,"Value",187],[6,"Ordering",952],[1,"f64"],[5,"Error",937],[5,"Arc",953],[1,"i64"],[10,"Hasher",954],[6,"Option",955],[10,"SyncCounter",325],[10,"SyncUpDownCounter",325],[5,"Counter",325],[5,"UpDownCounter",325],[5,"ObservableCounter",325],[10,"Any",942],[5,"ObservableGauge",325],[5,"ObservableUpDownCounter",325],[5,"Unit",325],[10,"Clone",956],[5,"Histogram",325],[10,"Debug",937],[10,"AsyncInstrument",957],[10,"SyncHistogram",325],[5,"InstrumentBuilder",957],[5,"AsyncInstrumentBuilder",957],[5,"RedisScriptInvoker",511],[10,"ToRedisArgs",958],[5,"RedisConn",511],[5,"RedisBatch",511],[5,"Duration",959],[10,"FromRedisValue",958],[10,"Future",960],[17,"Item"],[10,"IntoIterator",961],[5,"RedisTempList",511],[5,"RedisJson",511],[10,"Serialize",962],[10,"Deserialize",963],[5,"RedisScript",511],[5,"RedisTempListItem",511],[5,"Redis",511],[10,"Deserializer",963],[5,"RedisLock",511],[6,"RedisLockErr",511],[10,"PartialEq",952],[17,"NextType"],[10,"RedisBatchReturningOps",511],[1,"tuple"],[5,"Vec",964],[17,"ReturnType"],[10,"RedisBatchFire",511],[5,"RedisJsonBorrowed",511],[6,"Value",958],[8,"RedisResult",958],[5,"Connection",965],[8,"Pool",965],[5,"RedisTempListItemWithConn",511],[10,"AsRef",936],[1,"isize"],[10,"Serializer",962],[10,"Sized",966],[10,"RedisWrite",958],[5,"TimeRecorder",909]],"b":[[60,"impl-Display-for-BashErr"],[61,"impl-Debug-for-BashErr"],[120,"impl-Debug-for-AnyErr"],[121,"impl-Display-for-AnyErr"],[247,"impl-Debug-for-Key"],[248,"impl-Display-for-Key"],[249,"impl-Display-for-Value"],[250,"impl-Debug-for-Value"],[251,"impl-Display-for-StringValue"],[252,"impl-Debug-for-StringValue"],[254,"impl-From%3CString%3E-for-Key"],[256,"impl-From%3C%26str%3E-for-Key"],[257,"impl-From%3CCow%3C\'static,+str%3E%3E-for-Key"],[258,"impl-From%3CArc%3Cstr%3E%3E-for-Key"],[260,"impl-From%3CCow%3C\'static,+str%3E%3E-for-Value"],[261,"impl-From%3Cbool%3E-for-Value"],[262,"impl-From%3CArc%3Cstr%3E%3E-for-Value"],[263,"impl-From%3CString%3E-for-Value"],[264,"impl-From%3Ci64%3E-for-Value"],[265,"impl-From%3CStringValue%3E-for-Value"],[266,"impl-From%3Cf64%3E-for-Value"],[267,"impl-From%3C%26str%3E-for-Value"],[268,"impl-From%3CCow%3C\'static,+str%3E%3E-for-StringValue"],[269,"impl-From%3CArc%3Cstr%3E%3E-for-StringValue"],[270,"impl-From%3C%26str%3E-for-StringValue"],[271,"impl-From%3CString%3E-for-StringValue"],[339,"impl-ObservableCounter%3CT%3E"],[340,"impl-AsyncInstrument%3CT%3E-for-ObservableCounter%3CT%3E"],[341,"impl-AsyncInstrument%3CM%3E-for-ObservableGauge%3CM%3E"],[342,"impl-ObservableGauge%3CT%3E"],[343,"impl-AsyncInstrument%3CT%3E-for-ObservableUpDownCounter%3CT%3E"],[344,"impl-ObservableUpDownCounter%3CT%3E"],[452,"impl-ObservableCounter%3CT%3E"],[453,"impl-AsyncInstrument%3CT%3E-for-ObservableCounter%3CT%3E"],[454,"impl-AsyncInstrument%3CM%3E-for-ObservableGauge%3CM%3E"],[455,"impl-ObservableGauge%3CT%3E"],[456,"impl-ObservableUpDownCounter%3CT%3E"],[457,"impl-AsyncInstrument%3CT%3E-for-ObservableUpDownCounter%3CT%3E"],[467,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+Counter%3Cu64%3E%3E%3E-for-Counter%3Cu64%3E"],[469,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+Counter%3Cf64%3E%3E%3E-for-Counter%3Cf64%3E"],[470,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableCounter%3Cf64%3E,+f64%3E%3E-for-ObservableCounter%3Cf64%3E"],[472,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableCounter%3Cu64%3E,+u64%3E%3E-for-ObservableCounter%3Cu64%3E"],[473,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableGauge%3Cu64%3E,+u64%3E%3E-for-ObservableGauge%3Cu64%3E"],[475,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableGauge%3Ci64%3E,+i64%3E%3E-for-ObservableGauge%3Ci64%3E"],[476,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableGauge%3Cf64%3E,+f64%3E%3E-for-ObservableGauge%3Cf64%3E"],[477,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+Histogram%3Cu64%3E%3E%3E-for-Histogram%3Cu64%3E"],[478,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+Histogram%3Cf64%3E%3E%3E-for-Histogram%3Cf64%3E"],[479,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+Histogram%3Ci64%3E%3E%3E-for-Histogram%3Ci64%3E"],[482,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+UpDownCounter%3Ci64%3E%3E%3E-for-UpDownCounter%3Ci64%3E"],[483,"impl-TryFrom%3CInstrumentBuilder%3C\'_,+UpDownCounter%3Cf64%3E%3E%3E-for-UpDownCounter%3Cf64%3E"],[485,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableUpDownCounter%3Cf64%3E,+f64%3E%3E-for-ObservableUpDownCounter%3Cf64%3E"],[486,"impl-TryFrom%3CAsyncInstrumentBuilder%3C\'_,+ObservableUpDownCounter%3Ci64%3E,+i64%3E%3E-for-ObservableUpDownCounter%3Ci64%3E"],[628,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[629,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[630,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[631,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[632,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[633,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[634,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[635,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[636,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[637,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[638,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[639,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[640,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[648,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[649,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[650,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[651,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[652,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[653,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[654,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[655,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[656,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[657,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[658,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[659,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(R,)%3E"],[660,"impl-RedisBatchFire-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[661,"impl-Display-for-RedisLockErr"],[662,"impl-Debug-for-RedisLockErr"],[688,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[689,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[690,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[691,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[692,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[693,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[694,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[695,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[696,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[697,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[698,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[699,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[700,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[752,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[753,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[754,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[755,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[756,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[757,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[758,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[759,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[760,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[761,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[762,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[763,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[764,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[766,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[767,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[768,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[769,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[770,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[771,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[772,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[773,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[774,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[775,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[776,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[777,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[778,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[793,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[794,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[795,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[796,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[797,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[798,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[799,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[800,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[801,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[802,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[803,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[804,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[805,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[880,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[881,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[882,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[883,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"],[884,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[885,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[886,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[887,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[888,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[889,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[890,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[891,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[892,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[894,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D)%3E"],[895,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E)%3E"],[896,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F)%3E"],[897,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H)%3E"],[898,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,)%3E"],[899,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E"],[900,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E"],[901,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E"],[902,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B)%3E"],[903,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G)%3E"],[904,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+()%3E"],[905,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C)%3E"],[906,"impl-RedisBatchReturningOps%3C\'c%3E-for-RedisBatch%3C\'a,+\'b,+\'c,+(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/rust_ref/doc/src/bitbazaar/log/system_and_process_metrics.rs.html b/rust_ref/doc/src/bitbazaar/log/system_and_process_metrics.rs.html index b4a0b6e2..53e6e73e 100644 --- a/rust_ref/doc/src/bitbazaar/log/system_and_process_metrics.rs.html +++ b/rust_ref/doc/src/bitbazaar/log/system_and_process_metrics.rs.html @@ -321,6 +321,40 @@

        Files

        319 320 321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355
        use opentelemetry::{
             metrics::{Meter, Unit},
             Key,
        @@ -345,9 +379,17 @@ 

        Files

        // https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systemmemoryusage const SYSTEM_MEMORY_USAGE: &str = "system.memory.usage"; -// https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systemmemoryutilization +// (this is swap) +// https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systemmemoryutilization const SYSTEM_MEMORY_UTILIZATION: &str = "system.memory.utilization"; +// (this is swap) +// https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systempagingusage +const SYSTEM_PAGING_USAGE: &str = "system.paging.usage"; + +// https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systempagingutilization +const SYSTEM_PAGING_UTILIZATION: &str = "system.paging.utilization"; + // https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#metric-systemnetworkio const SYSTEM_NETWORK_IO: &str = "system.network.io"; @@ -391,8 +433,10 @@

        Files

        /// - system.cpu.logical.count /// - system.cpu.utilization /// - system.cpu.frequency -/// - system.memory.usage -/// - system.memory.utilization +/// - system.memory.usage (RAM) +/// - system.memory.utilization (RAM) +/// - system.paging.usage (swap) +/// - system.paging.utilization (swap) /// - system.network.io /// - system.filesystem.usage /// - system.filesystem.utilization @@ -437,6 +481,18 @@

        Files

        .with_unit(Unit::new("1")) .init(); + let system_paging_usage = meter + .u64_observable_gauge(SYSTEM_PAGING_USAGE) + .with_description("The total amount of swap in use.") + .with_unit(Unit::new("Bytes")) + .init(); + + let system_paging_utilisation = meter + .f64_observable_gauge(SYSTEM_PAGING_UTILIZATION) + .with_description("The total swap usage ratio.") + .with_unit(Unit::new("1")) + .init(); + let system_network_io = meter .u64_observable_counter(SYSTEM_NETWORK_IO) .with_description("Network bytes transferred.") @@ -494,6 +550,8 @@

        Files

        system_cpu_frequency.as_any(), system_memory_usage.as_any(), system_memory_utilisation.as_any(), + system_paging_usage.as_any(), + system_paging_utilisation.as_any(), system_network_io.as_any(), system_filesystem_usage.as_any(), system_filesystem_utilization.as_any(), @@ -556,6 +614,16 @@

        Files

        &[], ); + // system.paging.usage + context.observe_u64(&system_paging_usage, sys.used_swap(), &[]); + + // system.paging.utilization + context.observe_f64( + &system_paging_utilisation, + sys.used_swap() as f64 / sys.total_swap() as f64, + &[], + ); + // system.network.io networks.refresh_list(); for (interface_name, data) in networks.iter() { diff --git a/rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/index.html b/rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/index.html index cf47c858..6a743213 100644 --- a/rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/index.html +++ b/rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/index.html @@ -995,11 +995,11 @@

        SIL OPEN FONT LICENSE Last update: - May 30, 2024 + May 31, 2024
        Created: - May 30, 2024 + May 31, 2024
        diff --git a/search/search_index.json b/search/search_index.json index c39fb57d..8b86b20e 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"BitBazaar","text":"

        An assortment of publicly available cross-language utilities useful to my projects.

        "},{"location":"#python","title":"Python","text":"

        You can install BitBazaar via pip from PyPI:

        pip install bitbazaar\n
        "},{"location":"#javascript","title":"Javascript","text":"

        You can install BitBazaar via npm:

        npm install bitbazaar\n
        "},{"location":"#rust-backed-python-library","title":"Rust-backed Python library","text":"

        You can install BitBazaar via pip from PyPI:

        pip install bitbazaar_rs\n

        Binaries are available for:

        • Linux: x86_64, aarch64, i686, armv7, ppc64le, s390x, musl-x86_64 & musl-aarch64
        • MacOS: x86_64, aarch64
        • Windows: x86_64, aarch64, i686

        If your platform isn't supported, file an issue.

        "},{"location":"#rust","title":"Rust","text":"

        You can install BitBazaar via crates.io:

        # Cargo.toml\n\n[dependencies]\nbitbazaar = \"0.0.51\"\n
        "},{"location":"#usage","title":"Usage","text":"

        Please see the documentation for details.

        "},{"location":"#contributing","title":"Contributing","text":"

        Contributions are very welcome. To learn more, see the Contributor Guide.

        "},{"location":"#license","title":"License","text":"

        Distributed under the terms of the MIT license, BitBazaar is free and open source software.

        "},{"location":"#issues","title":"Issues","text":"

        If you encounter any problems, please file an issue along with a detailed description.

        "},{"location":"CODE_OF_CONDUCT/","title":"Contributor Covenant Code of Conduct","text":""},{"location":"CODE_OF_CONDUCT/#our-pledge","title":"Our Pledge","text":"

        We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

        We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

        "},{"location":"CODE_OF_CONDUCT/#our-standards","title":"Our Standards","text":"

        Examples of behavior that contributes to a positive environment for our community include:

        • Demonstrating empathy and kindness toward other people
        • Being respectful of differing opinions, viewpoints, and experiences
        • Giving and gracefully accepting constructive feedback
        • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
        • Focusing on what is best not just for us as individuals, but for the overall community

        Examples of unacceptable behavior include:

        • The use of sexualized language or imagery, and sexual attention or advances of any kind
        • Trolling, insulting or derogatory comments, and personal or political attacks
        • Public or private harassment
        • Publishing others' private information, such as a physical or email address, without their explicit permission
        • Other conduct which could reasonably be considered inappropriate in a professional setting
        "},{"location":"CODE_OF_CONDUCT/#enforcement-responsibilities","title":"Enforcement Responsibilities","text":"

        Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

        Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

        "},{"location":"CODE_OF_CONDUCT/#scope","title":"Scope","text":"

        This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

        "},{"location":"CODE_OF_CONDUCT/#enforcement","title":"Enforcement","text":"

        Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at zakstucke@gmail.com. All complaints will be reviewed and investigated promptly and fairly.

        All community leaders are obligated to respect the privacy and security of the reporter of any incident.

        "},{"location":"CODE_OF_CONDUCT/#enforcement-guidelines","title":"Enforcement Guidelines","text":"

        Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

        "},{"location":"CODE_OF_CONDUCT/#1-correction","title":"1. Correction","text":"

        Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

        Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

        "},{"location":"CODE_OF_CONDUCT/#2-warning","title":"2. Warning","text":"

        Community Impact: A violation through a single incident or series of actions.

        Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

        "},{"location":"CODE_OF_CONDUCT/#3-temporary-ban","title":"3. Temporary Ban","text":"

        Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

        Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

        "},{"location":"CODE_OF_CONDUCT/#4-permanent-ban","title":"4. Permanent Ban","text":"

        Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

        Consequence: A permanent ban from any sort of public interaction within the community.

        "},{"location":"CODE_OF_CONDUCT/#attribution","title":"Attribution","text":"

        This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

        Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder.

        For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.

        "},{"location":"CONTRIBUTING/","title":"Contributor Guide","text":"

        Thank you for your interest in improving this project.

        This project is open-source under the MIT license and welcomes contributions in the form of bug reports, feature requests, and pull requests.

        Here is a list of important resources for contributors:

        • Source Code
        • Documentation
        • Issue Tracker
        • Code of Conduct
        "},{"location":"CONTRIBUTING/#how-to-report-a-bug","title":"How to report a bug","text":"

        Report bugs on the Issue Tracker.

        When filing an issue, make sure to answer these questions:

        • Which operating system and core package versions are you using? (the applicable of rust/python/node etc)
        • Which version of this project are you using?
        • What did you do?
        • What did you expect to see?
        • What did you see instead?

        The best way to get your bug fixed is to provide a test case, and/or steps to reproduce the issue.

        "},{"location":"CONTRIBUTING/#how-to-request-a-feature","title":"How to request a feature","text":"

        Request features on the Issue Tracker.

        "},{"location":"CONTRIBUTING/#how-to-set-up-your-development-environment","title":"How to set up your development environment","text":"
        • Clone the repo: git clone https://github.com/zakstucke/bitbazaar
        • Install pipx
        • ./dev_scripts/initial_setup.sh initial_setup
        "},{"location":"CONTRIBUTING/#python","title":"Python","text":"
        • Make sure Python 3.11+ is installed
        • Install PDM
        "},{"location":"CONTRIBUTING/#js","title":"JS:","text":"
        • Install node 20 or greater
        • Install npx globally
        "},{"location":"CONTRIBUTING/#rust-backed-python-library","title":"Rust-backed Python library","text":"
        • Make sure Python 3.11+ is installed
        • Install rust
        "},{"location":"CONTRIBUTING/#rust","title":"Rust:","text":"
        • Install rust
        "},{"location":"CONTRIBUTING/#running-tests","title":"Running tests","text":"

        Checkout scripts in ./dev_scripts/ for how the system can be run, test.sh in particular. Run the full test suite with ./dev_scripts/test.sh all

        "},{"location":"CONTRIBUTING/#how-to-submit-changes","title":"How to submit changes","text":"

        Open a pull request to submit changes to this project.

        Your pull request needs to meet the following guidelines for acceptance:

        • ./dev_scripts/test.sh all passes without failures or warnings.
        • Include unit tests. This project maintains 100% code coverage.
        • If your changes add functionality, update the documentation accordingly.

        Feel free to submit early, though\u2014we can always iterate on this.

        It is recommended to open an issue before starting work on anything. This will allow a chance to talk it over with the owners and validate your approach.

        "},{"location":"LICENSE/","title":"LICENSE","text":"

        MIT License

        Copyright \u00a9 2024 Zachary Stucke

        Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

        The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

        "},{"location":"py_ref/","title":"bitbazaar","text":"

        BitBazaar.

        "},{"location":"py_ref/SUMMARY/","title":"SUMMARY","text":"
        • bitbazaar
          • log
          • misc
          • testing
        "},{"location":"py_ref/log/","title":"log","text":"

        Global tracing implementation for open telemetry, console and file sinks.

        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog","title":"GlobalLog(service_name, service_version, console=None, otlp=None, file=None)","text":"

        Initialize logs, traces/spans and metrics for a project.

        Logging: normal .debug()/.info()/.warn() etc methods available.

        Tracing/spans: .span() can be used to create a new span, or as a decorator to wrap functions.

        Metrics: .get_meter() can be used.

        Auto-instrumentation: self.meter_provider/tracer_provider/logger_provider are exposed from the instance to allow interaction with auto instrumentation libraries.

        If open telemetry used, is opinionated in the fact it should be speaking to a local collector via grpc insecurely on localhost with no headers, only the port can be configured. The collector itself should be post-processing speaking to the outside world, to minimise tracing's impact on this program's performance.

        Source code in py/bitbazaar/log/_global_log.py
        def __init__(\n    self,\n    service_name: str,\n    service_version: str,\n    console: ConsoleSink | None = None,\n    otlp: OLTPSink | None = None,\n    file: FileSink | None = None,\n):\n    \"\"\"Initialize logs, traces/spans and metrics for a project.\n\n    Logging: normal `.debug()/.info()/.warn()` etc methods available.\n\n    Tracing/spans: `.span()` can be used to create a new span, or as a decorator to wrap functions.\n\n    Metrics: `.get_meter()` can be used.\n\n    Auto-instrumentation: `self.meter_provider/tracer_provider/logger_provider` are exposed from the instance to allow interaction with auto instrumentation libraries.\n\n    If open telemetry used, is opinionated in the fact it should be speaking to a local collector via grpc insecurely on localhost with no headers, only the port can be configured.\n    The collector itself should be post-processing speaking to the outside world, to minimise tracing's impact on this program's performance.\n    \"\"\"\n    (\n        self.meter_provider,\n        self.tracer_provider,\n        self.logger_provider,\n        self.file_handler,\n    ) = prepare_providers(\n        {\n            \"service_name\": service_name,\n            \"service_version\": service_version,\n            \"console\": console,\n            \"otlp\": otlp,\n            \"file\": file,\n        }\n    )\n    self.tracer = trace.get_tracer(\"GlobalLog\")\n\n    # Register as the global logger:\n    global _LOG\n    _LOG = self\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.flush","title":"flush()","text":"

        Force all logs/spans through, useful when testing.

        Source code in py/bitbazaar/log/_global_log.py
        def flush(self) -> None:\n    \"\"\"Force all logs/spans through, useful when testing.\"\"\"\n    self.tracer_provider.force_flush()\n    self.logger_provider.force_flush()\n    self.meter_provider.force_flush()\n    if self.file_handler:\n        self.file_handler.flush()\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.shutdown","title":"shutdown()","text":"

        Shuts/closes everything down.

        Source code in py/bitbazaar/log/_global_log.py
        def shutdown(self) -> None:\n    \"\"\"Shuts/closes everything down.\"\"\"\n    self.tracer_provider.shutdown()\n    self.logger_provider.shutdown()\n    self.meter_provider.shutdown()\n    if self.file_handler:\n        self.file_handler.close()\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.span","title":"span(name, context=None, kind=SpanKind.INTERNAL, attributes=None, links=None, start_time=None, record_exception=True, set_status_on_exception=True, end_on_exit=True)","text":"

        Context manager for creating a new span and set it as the current span in this tracer's context.

        Exiting the context manager will call the span's end method, as well as return the current span to its previous value by returning to the previous context.

        Example::

        with tracer.start_as_current_span(\"one\") as parent:\n    parent.add_event(\"parent's event\")\n    with tracer.start_as_current_span(\"two\") as child:\n        child.add_event(\"child's event\")\n        trace.get_current_span()  # returns child\n    trace.get_current_span()      # returns parent\ntrace.get_current_span()          # returns previously active span\n

        This is a convenience method for creating spans attached to the tracer's context. Applications that need more control over the span lifetime should use :meth:start_span instead. For example::

        with tracer.start_as_current_span(name) as span:\n    do_work()\n

        is equivalent to::

        span = tracer.start_span(name)\nwith opentelemetry.trace.use_span(span, end_on_exit=True):\n    do_work()\n

        This can also be used as a decorator::

        @tracer.start_as_current_span(\"name\")\ndef function():\n    ...\n\nfunction()\n

        Parameters:

        Name Type Description Default name str

        The name of the span to be created.

        required context Context | None

        An optional Context containing the span's parent. Defaults to the global context.

        None kind SpanKind

        The span's kind (relationship to parent). Note that is meaningful even if there is no parent.

        INTERNAL attributes Attributes

        The span's attributes.

        None links _Links

        Links span to other spans

        None start_time int | None

        Sets the start time of a span

        None record_exception bool

        Whether to record any exceptions raised within the context as error event on the span.

        True set_status_on_exception bool

        Only relevant if the returned span is used in a with/context manager. Defines whether the span status will be automatically set to ERROR when an uncaught exception is raised in the span with block. The span status won't be set by this mechanism if it was previously set manually.

        True end_on_exit bool

        Whether to end the span automatically when leaving the context manager.

        True

        Yields:

        Type Description

        The newly-created span.

        Source code in py/bitbazaar/log/_global_log.py
        def span(\n    self,\n    name: str,\n    context: Context | None = None,\n    kind: SpanKind = SpanKind.INTERNAL,\n    attributes: Attributes = None,\n    links: _Links = None,\n    start_time: int | None = None,\n    record_exception: bool = True,\n    set_status_on_exception: bool = True,\n    end_on_exit: bool = True,\n):\n    \"\"\"Context manager for creating a new span and set it as the current span in this tracer's context.\n\n    Exiting the context manager will call the span's end method,\n    as well as return the current span to its previous value by\n    returning to the previous context.\n\n    Example::\n\n        with tracer.start_as_current_span(\"one\") as parent:\n            parent.add_event(\"parent's event\")\n            with tracer.start_as_current_span(\"two\") as child:\n                child.add_event(\"child's event\")\n                trace.get_current_span()  # returns child\n            trace.get_current_span()      # returns parent\n        trace.get_current_span()          # returns previously active span\n\n    This is a convenience method for creating spans attached to the\n    tracer's context. Applications that need more control over the span\n    lifetime should use :meth:`start_span` instead. For example::\n\n        with tracer.start_as_current_span(name) as span:\n            do_work()\n\n    is equivalent to::\n\n        span = tracer.start_span(name)\n        with opentelemetry.trace.use_span(span, end_on_exit=True):\n            do_work()\n\n    This can also be used as a decorator::\n\n        @tracer.start_as_current_span(\"name\")\n        def function():\n            ...\n\n        function()\n\n    Args:\n        name: The name of the span to be created.\n        context: An optional Context containing the span's parent. Defaults to the\n            global context.\n        kind: The span's kind (relationship to parent). Note that is\n            meaningful even if there is no parent.\n        attributes: The span's attributes.\n        links: Links span to other spans\n        start_time: Sets the start time of a span\n        record_exception: Whether to record any exceptions raised within the\n            context as error event on the span.\n        set_status_on_exception: Only relevant if the returned span is used\n            in a with/context manager. Defines whether the span status will\n            be automatically set to ERROR when an uncaught exception is\n            raised in the span with block. The span status won't be set by\n            this mechanism if it was previously set manually.\n        end_on_exit: Whether to end the span automatically when leaving the\n            context manager.\n\n    Yields:\n        The newly-created span.\n    \"\"\"\n    return self.tracer.start_as_current_span(\n        name,\n        context,\n        kind,\n        attributes,\n        links,\n        start_time,\n        record_exception,\n        set_status_on_exception,\n        end_on_exit,\n    )\n
        "},{"location":"py_ref/misc/","title":"misc","text":"

        Miscellaneous utility functions for BitBazaar.

        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture","title":"StdCapture(stderr=False)","text":"

        Bases: list

        Capture stdout/stderr for the duration of a with block.

        (e.g. print statements)

        Example:

        with StdCapture(stderr=True) as out: # By default only captures stdout\n    print('hello')\n    sys.stderr.write('world')\nprint(out)  # ['hello', 'world']\n

        Creation of new capturer.

        By default only stdout is captured, stderr=True enables capturing stderr too.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __init__(self, stderr: bool = False):\n    \"\"\"Creation of new capturer.\n\n    By default only stdout is captured, stderr=True enables capturing stderr too.\n    \"\"\"\n    # Prep all instance vars:\n    self.stderr_capture = stderr\n    self._out = []\n    self._stdout = sys.stdout\n    self._stderr = sys.stderr\n    self._buf = io.StringIO()\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture.__enter__","title":"__enter__()","text":"

        Entering the capturing context.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __enter__(self) -> list[str]:\n    \"\"\"Entering the capturing context.\"\"\"\n    # Overwrite sinks which are being captured with the buffer:\n    sys.stdout = self._buf\n    if self.stderr_capture:\n        sys.stderr = self._buf\n\n    return self._out\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture.__exit__","title":"__exit__(*args)","text":"

        On context exit.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __exit__(self, *args):  # type: ignore\n    \"\"\"On context exit.\"\"\"\n    # First reset the global streams:\n    sys.stdout = self._stdout\n    sys.stderr = self._stderr\n\n    self._out.extend(self._buf.getvalue().splitlines())\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.copy_sig","title":"copy_sig(f)","text":"

        Keep e.g. a class's init signature when subclassing.

        From: https://github.com/python/typing/issues/769#issuecomment-903760354

        Source code in py/bitbazaar/misc/__init__.py
        def copy_sig(f: _T) -> tp.Callable[[tp.Any], _T]:\n    \"\"\"Keep e.g. a class's __init__ signature when subclassing.\n\n    From: https://github.com/python/typing/issues/769#issuecomment-903760354\n    \"\"\"\n    return lambda x: x\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.in_ci","title":"in_ci()","text":"

        Returns true if it looks like the program is running from a CI service, e.g. Github Actions.

        Source code in py/bitbazaar/misc/__init__.py
        def in_ci() -> bool:\n    \"\"\"Returns true if it looks like the program is running from a CI service, e.g. Github Actions.\"\"\"\n    return any([var in os.environ for var in _CI_ENV_VARS])\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.is_tcp_port_listening","title":"is_tcp_port_listening(host, port)","text":"

        Check if something is listening on a certain tcp port or not.

        Source code in py/bitbazaar/misc/__init__.py
        def is_tcp_port_listening(\n    host: str, port: int\n) -> bool:  # pragma: no cover (is covered but not in CI)\n    \"\"\"Check if something is listening on a certain tcp port or not.\"\"\"\n    try:\n        # Create a TCP socket\n        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        s.settimeout(1)  # Set timeout to 1 second\n\n        # Attempt to establish a connection to the port\n        s.connect((host, port))\n\n        # If connection is successful, something is listening on the port\n        s.close()\n        return True\n    except OSError:\n        return False\n
        "},{"location":"py_ref/testing/","title":"testing","text":"

        Useful downstream testing utilities.

        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager","title":"TmpFileManager()","text":"

        A context manager for managing temporary files and directories.

        Usage: with TmpFileManager() as manager: file_path = manager.tmpfile(content=\"Hello, temporary file!\") dir_path = manager.tmp_dir()

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def __init__(self):\n    self.root_dir = tempfile.mkdtemp()\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.cleanup","title":"cleanup()","text":"

        Clean up created temporary files and directories.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def cleanup(self):\n    \"\"\"Clean up created temporary files and directories.\"\"\"\n    shutil.rmtree(self.root_dir)\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.tmpdir","title":"tmpdir(parent=None, name=None)","text":"

        Create a temporary directory.

        Parameters: - parent: Optional directory to create the temporary directory in. Otherwise will be placed in root.

        Returns: - The path to the created temporary directory.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def tmpdir(\n    self, parent: tp.Optional[str] = None, name: tp.Optional[str] = None\n) -> pathlib.Path:\n    \"\"\"Create a temporary directory.\n\n    Parameters:\n    - parent: Optional directory to create the temporary directory in. Otherwise will be placed in root.\n\n    Returns:\n    - The path to the created temporary directory.\n    \"\"\"\n    if parent is None:\n        parent = self.root_dir\n\n    final_path = pathlib.Path(os.path.join(parent, str(uuid.uuid4()) if name is None else name))\n    os.mkdir(final_path)\n\n    self.dirs_created += 1\n    return final_path\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.tmpfile","title":"tmpfile(content, suffix=None, parent=None, full_name=None)","text":"

        Create a temporary file.

        Parameters: - content: The content to write to the temporary file. - suffix: Optional suffix to append to the temporary file. Otherwise will be created with tempfile. - parent: Optional directory to create the temporary file in. Otherwise will be placed in root. - full_name: Optional full name of the temporary file, overrides suffix. Otherwise will be created with tempfile.

        Returns: - The path to the created temporary file.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def tmpfile(\n    self,\n    content: str,\n    suffix: tp.Optional[str] = None,\n    parent: tp.Optional[tp.Union[str, pathlib.Path]] = None,\n    full_name: tp.Optional[str] = None,\n) -> pathlib.Path:\n    \"\"\"Create a temporary file.\n\n    Parameters:\n    - content: The content to write to the temporary file.\n    - suffix: Optional suffix to append to the temporary file. Otherwise will be created with tempfile.\n    - parent: Optional directory to create the temporary file in. Otherwise will be placed in root.\n    - full_name: Optional full name of the temporary file, overrides suffix. Otherwise will be created with tempfile.\n\n    Returns:\n    - The path to the created temporary file.\n    \"\"\"\n    if parent is None:\n        parent = self.root_dir\n\n    filename: str\n    if full_name is not None:\n        filename = full_name\n    elif suffix is not None:\n        filename = str(uuid.uuid4()) + suffix\n    else:\n        filename = str(uuid.uuid4())\n\n    final_path = pathlib.Path(os.path.join(parent, filename))\n\n    with open(final_path, \"w\") as file:\n        file.write(content)\n\n    self.files_created += 1\n\n    return final_path\n
        "},{"location":"py_rust_ref/","title":"bitbazaar_rs","text":""},{"location":"py_rust_ref/#py_rust.python.bitbazaar_rs.hello","title":"hello()","text":"

        Returns Hello, World!

        Returns:

        Name Type Description str str

        Hello, World!

        Source code in py_rust/python/bitbazaar_rs/__init__.py
        from importlib.metadata import version\n\n__version__ = version(\"bitbazaar_rs\")\n\n__all__ = [\"__version__\"]\n\n# Import the rust modules and top level fns:\n
        "},{"location":"py_rust_ref/SUMMARY/","title":"SUMMARY","text":"
        • bitbazaar_rs
          • utils
        "},{"location":"py_rust_ref/utils/","title":"utils","text":""},{"location":"py_rust_ref/utils/#py_rust.python.bitbazaar_rs.utils.add","title":"add(a, b)","text":"

        Add two numbers.

        Parameters:

        Name Type Description Default a float

        First number.

        required b float

        Second number.

        required

        Returns:

        Type Description float

        Sum of the two numbers.

        Source code in py_rust/python/bitbazaar_rs/utils.pyi
        def add(a: float, b: float) -> float:\n    \"\"\"Add two numbers.\n\n    Args:\n        a: First number.\n        b: Second number.\n\n    Returns:\n        Sum of the two numbers.\n    \"\"\"\n    ...\n
        "},{"location":"rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/","title":"SourceSerif4 LICENSE 3bb119e13b1258b7","text":"

        Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name \u2018Source\u2019. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.

        This Font Software is licensed under the SIL Open Font License, Version 1.1.

        This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL

        "},{"location":"rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/#sil-open-font-license-version-11-26-february-2007","title":"SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007","text":"

        PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.

        The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

        DEFINITIONS \"Font Software\" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

        \"Reserved Font Name\" refers to any names specified as such after the copyright statement(s).

        \"Original Version\" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

        \"Modified Version\" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

        \"Author\" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

        PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

        1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

        2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

        3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.

        4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.

        5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

        TERMINATION This license becomes null and void if any of the above conditions are not met.

        DISCLAIMER THE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

        "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"BitBazaar","text":"

        An assortment of publicly available cross-language utilities useful to my projects.

        "},{"location":"#python","title":"Python","text":"

        You can install BitBazaar via pip from PyPI:

        pip install bitbazaar\n
        "},{"location":"#javascript","title":"Javascript","text":"

        You can install BitBazaar via npm:

        npm install bitbazaar\n
        "},{"location":"#rust-backed-python-library","title":"Rust-backed Python library","text":"

        You can install BitBazaar via pip from PyPI:

        pip install bitbazaar_rs\n

        Binaries are available for:

        • Linux: x86_64, aarch64, i686, armv7, ppc64le, s390x, musl-x86_64 & musl-aarch64
        • MacOS: x86_64, aarch64
        • Windows: x86_64, aarch64, i686

        If your platform isn't supported, file an issue.

        "},{"location":"#rust","title":"Rust","text":"

        You can install BitBazaar via crates.io:

        # Cargo.toml\n\n[dependencies]\nbitbazaar = \"0.0.52\"\n
        "},{"location":"#usage","title":"Usage","text":"

        Please see the documentation for details.

        "},{"location":"#contributing","title":"Contributing","text":"

        Contributions are very welcome. To learn more, see the Contributor Guide.

        "},{"location":"#license","title":"License","text":"

        Distributed under the terms of the MIT license, BitBazaar is free and open source software.

        "},{"location":"#issues","title":"Issues","text":"

        If you encounter any problems, please file an issue along with a detailed description.

        "},{"location":"CODE_OF_CONDUCT/","title":"Contributor Covenant Code of Conduct","text":""},{"location":"CODE_OF_CONDUCT/#our-pledge","title":"Our Pledge","text":"

        We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

        We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

        "},{"location":"CODE_OF_CONDUCT/#our-standards","title":"Our Standards","text":"

        Examples of behavior that contributes to a positive environment for our community include:

        • Demonstrating empathy and kindness toward other people
        • Being respectful of differing opinions, viewpoints, and experiences
        • Giving and gracefully accepting constructive feedback
        • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
        • Focusing on what is best not just for us as individuals, but for the overall community

        Examples of unacceptable behavior include:

        • The use of sexualized language or imagery, and sexual attention or advances of any kind
        • Trolling, insulting or derogatory comments, and personal or political attacks
        • Public or private harassment
        • Publishing others' private information, such as a physical or email address, without their explicit permission
        • Other conduct which could reasonably be considered inappropriate in a professional setting
        "},{"location":"CODE_OF_CONDUCT/#enforcement-responsibilities","title":"Enforcement Responsibilities","text":"

        Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

        Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

        "},{"location":"CODE_OF_CONDUCT/#scope","title":"Scope","text":"

        This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

        "},{"location":"CODE_OF_CONDUCT/#enforcement","title":"Enforcement","text":"

        Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at zakstucke@gmail.com. All complaints will be reviewed and investigated promptly and fairly.

        All community leaders are obligated to respect the privacy and security of the reporter of any incident.

        "},{"location":"CODE_OF_CONDUCT/#enforcement-guidelines","title":"Enforcement Guidelines","text":"

        Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

        "},{"location":"CODE_OF_CONDUCT/#1-correction","title":"1. Correction","text":"

        Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

        Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

        "},{"location":"CODE_OF_CONDUCT/#2-warning","title":"2. Warning","text":"

        Community Impact: A violation through a single incident or series of actions.

        Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

        "},{"location":"CODE_OF_CONDUCT/#3-temporary-ban","title":"3. Temporary Ban","text":"

        Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

        Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

        "},{"location":"CODE_OF_CONDUCT/#4-permanent-ban","title":"4. Permanent Ban","text":"

        Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

        Consequence: A permanent ban from any sort of public interaction within the community.

        "},{"location":"CODE_OF_CONDUCT/#attribution","title":"Attribution","text":"

        This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

        Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder.

        For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.

        "},{"location":"CONTRIBUTING/","title":"Contributor Guide","text":"

        Thank you for your interest in improving this project.

        This project is open-source under the MIT license and welcomes contributions in the form of bug reports, feature requests, and pull requests.

        Here is a list of important resources for contributors:

        • Source Code
        • Documentation
        • Issue Tracker
        • Code of Conduct
        "},{"location":"CONTRIBUTING/#how-to-report-a-bug","title":"How to report a bug","text":"

        Report bugs on the Issue Tracker.

        When filing an issue, make sure to answer these questions:

        • Which operating system and core package versions are you using? (the applicable of rust/python/node etc)
        • Which version of this project are you using?
        • What did you do?
        • What did you expect to see?
        • What did you see instead?

        The best way to get your bug fixed is to provide a test case, and/or steps to reproduce the issue.

        "},{"location":"CONTRIBUTING/#how-to-request-a-feature","title":"How to request a feature","text":"

        Request features on the Issue Tracker.

        "},{"location":"CONTRIBUTING/#how-to-set-up-your-development-environment","title":"How to set up your development environment","text":"
        • Clone the repo: git clone https://github.com/zakstucke/bitbazaar
        • Install pipx
        • ./dev_scripts/initial_setup.sh initial_setup
        "},{"location":"CONTRIBUTING/#python","title":"Python","text":"
        • Make sure Python 3.11+ is installed
        • Install PDM
        "},{"location":"CONTRIBUTING/#js","title":"JS:","text":"
        • Install node 20 or greater
        • Install npx globally
        "},{"location":"CONTRIBUTING/#rust-backed-python-library","title":"Rust-backed Python library","text":"
        • Make sure Python 3.11+ is installed
        • Install rust
        "},{"location":"CONTRIBUTING/#rust","title":"Rust:","text":"
        • Install rust
        "},{"location":"CONTRIBUTING/#running-tests","title":"Running tests","text":"

        Checkout scripts in ./dev_scripts/ for how the system can be run, test.sh in particular. Run the full test suite with ./dev_scripts/test.sh all

        "},{"location":"CONTRIBUTING/#how-to-submit-changes","title":"How to submit changes","text":"

        Open a pull request to submit changes to this project.

        Your pull request needs to meet the following guidelines for acceptance:

        • ./dev_scripts/test.sh all passes without failures or warnings.
        • Include unit tests. This project maintains 100% code coverage.
        • If your changes add functionality, update the documentation accordingly.

        Feel free to submit early, though\u2014we can always iterate on this.

        It is recommended to open an issue before starting work on anything. This will allow a chance to talk it over with the owners and validate your approach.

        "},{"location":"LICENSE/","title":"LICENSE","text":"

        MIT License

        Copyright \u00a9 2024 Zachary Stucke

        Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

        The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

        "},{"location":"py_ref/","title":"bitbazaar","text":"

        BitBazaar.

        "},{"location":"py_ref/SUMMARY/","title":"SUMMARY","text":"
        • bitbazaar
          • log
          • misc
          • testing
        "},{"location":"py_ref/log/","title":"log","text":"

        Global tracing implementation for open telemetry, console and file sinks.

        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog","title":"GlobalLog(service_name, service_version, console=None, otlp=None, file=None)","text":"

        Initialize logs, traces/spans and metrics for a project.

        Logging: normal .debug()/.info()/.warn() etc methods available.

        Tracing/spans: .span() can be used to create a new span, or as a decorator to wrap functions.

        Metrics: .get_meter() can be used.

        Auto-instrumentation: self.meter_provider/tracer_provider/logger_provider are exposed from the instance to allow interaction with auto instrumentation libraries.

        If open telemetry used, is opinionated in the fact it should be speaking to a local collector via grpc insecurely on localhost with no headers, only the port can be configured. The collector itself should be post-processing speaking to the outside world, to minimise tracing's impact on this program's performance.

        Source code in py/bitbazaar/log/_global_log.py
        def __init__(\n    self,\n    service_name: str,\n    service_version: str,\n    console: ConsoleSink | None = None,\n    otlp: OLTPSink | None = None,\n    file: FileSink | None = None,\n):\n    \"\"\"Initialize logs, traces/spans and metrics for a project.\n\n    Logging: normal `.debug()/.info()/.warn()` etc methods available.\n\n    Tracing/spans: `.span()` can be used to create a new span, or as a decorator to wrap functions.\n\n    Metrics: `.get_meter()` can be used.\n\n    Auto-instrumentation: `self.meter_provider/tracer_provider/logger_provider` are exposed from the instance to allow interaction with auto instrumentation libraries.\n\n    If open telemetry used, is opinionated in the fact it should be speaking to a local collector via grpc insecurely on localhost with no headers, only the port can be configured.\n    The collector itself should be post-processing speaking to the outside world, to minimise tracing's impact on this program's performance.\n    \"\"\"\n    (\n        self.meter_provider,\n        self.tracer_provider,\n        self.logger_provider,\n        self.file_handler,\n    ) = prepare_providers(\n        {\n            \"service_name\": service_name,\n            \"service_version\": service_version,\n            \"console\": console,\n            \"otlp\": otlp,\n            \"file\": file,\n        }\n    )\n    self.tracer = trace.get_tracer(\"GlobalLog\")\n\n    # Register as the global logger:\n    global _LOG\n    _LOG = self\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.flush","title":"flush()","text":"

        Force all logs/spans through, useful when testing.

        Source code in py/bitbazaar/log/_global_log.py
        def flush(self) -> None:\n    \"\"\"Force all logs/spans through, useful when testing.\"\"\"\n    self.tracer_provider.force_flush()\n    self.logger_provider.force_flush()\n    self.meter_provider.force_flush()\n    if self.file_handler:\n        self.file_handler.flush()\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.shutdown","title":"shutdown()","text":"

        Shuts/closes everything down.

        Source code in py/bitbazaar/log/_global_log.py
        def shutdown(self) -> None:\n    \"\"\"Shuts/closes everything down.\"\"\"\n    self.tracer_provider.shutdown()\n    self.logger_provider.shutdown()\n    self.meter_provider.shutdown()\n    if self.file_handler:\n        self.file_handler.close()\n
        "},{"location":"py_ref/log/#py.bitbazaar.log.GlobalLog.span","title":"span(name, context=None, kind=SpanKind.INTERNAL, attributes=None, links=None, start_time=None, record_exception=True, set_status_on_exception=True, end_on_exit=True)","text":"

        Context manager for creating a new span and set it as the current span in this tracer's context.

        Exiting the context manager will call the span's end method, as well as return the current span to its previous value by returning to the previous context.

        Example::

        with tracer.start_as_current_span(\"one\") as parent:\n    parent.add_event(\"parent's event\")\n    with tracer.start_as_current_span(\"two\") as child:\n        child.add_event(\"child's event\")\n        trace.get_current_span()  # returns child\n    trace.get_current_span()      # returns parent\ntrace.get_current_span()          # returns previously active span\n

        This is a convenience method for creating spans attached to the tracer's context. Applications that need more control over the span lifetime should use :meth:start_span instead. For example::

        with tracer.start_as_current_span(name) as span:\n    do_work()\n

        is equivalent to::

        span = tracer.start_span(name)\nwith opentelemetry.trace.use_span(span, end_on_exit=True):\n    do_work()\n

        This can also be used as a decorator::

        @tracer.start_as_current_span(\"name\")\ndef function():\n    ...\n\nfunction()\n

        Parameters:

        Name Type Description Default name str

        The name of the span to be created.

        required context Context | None

        An optional Context containing the span's parent. Defaults to the global context.

        None kind SpanKind

        The span's kind (relationship to parent). Note that is meaningful even if there is no parent.

        INTERNAL attributes Attributes

        The span's attributes.

        None links _Links

        Links span to other spans

        None start_time int | None

        Sets the start time of a span

        None record_exception bool

        Whether to record any exceptions raised within the context as error event on the span.

        True set_status_on_exception bool

        Only relevant if the returned span is used in a with/context manager. Defines whether the span status will be automatically set to ERROR when an uncaught exception is raised in the span with block. The span status won't be set by this mechanism if it was previously set manually.

        True end_on_exit bool

        Whether to end the span automatically when leaving the context manager.

        True

        Yields:

        Type Description

        The newly-created span.

        Source code in py/bitbazaar/log/_global_log.py
        def span(\n    self,\n    name: str,\n    context: Context | None = None,\n    kind: SpanKind = SpanKind.INTERNAL,\n    attributes: Attributes = None,\n    links: _Links = None,\n    start_time: int | None = None,\n    record_exception: bool = True,\n    set_status_on_exception: bool = True,\n    end_on_exit: bool = True,\n):\n    \"\"\"Context manager for creating a new span and set it as the current span in this tracer's context.\n\n    Exiting the context manager will call the span's end method,\n    as well as return the current span to its previous value by\n    returning to the previous context.\n\n    Example::\n\n        with tracer.start_as_current_span(\"one\") as parent:\n            parent.add_event(\"parent's event\")\n            with tracer.start_as_current_span(\"two\") as child:\n                child.add_event(\"child's event\")\n                trace.get_current_span()  # returns child\n            trace.get_current_span()      # returns parent\n        trace.get_current_span()          # returns previously active span\n\n    This is a convenience method for creating spans attached to the\n    tracer's context. Applications that need more control over the span\n    lifetime should use :meth:`start_span` instead. For example::\n\n        with tracer.start_as_current_span(name) as span:\n            do_work()\n\n    is equivalent to::\n\n        span = tracer.start_span(name)\n        with opentelemetry.trace.use_span(span, end_on_exit=True):\n            do_work()\n\n    This can also be used as a decorator::\n\n        @tracer.start_as_current_span(\"name\")\n        def function():\n            ...\n\n        function()\n\n    Args:\n        name: The name of the span to be created.\n        context: An optional Context containing the span's parent. Defaults to the\n            global context.\n        kind: The span's kind (relationship to parent). Note that is\n            meaningful even if there is no parent.\n        attributes: The span's attributes.\n        links: Links span to other spans\n        start_time: Sets the start time of a span\n        record_exception: Whether to record any exceptions raised within the\n            context as error event on the span.\n        set_status_on_exception: Only relevant if the returned span is used\n            in a with/context manager. Defines whether the span status will\n            be automatically set to ERROR when an uncaught exception is\n            raised in the span with block. The span status won't be set by\n            this mechanism if it was previously set manually.\n        end_on_exit: Whether to end the span automatically when leaving the\n            context manager.\n\n    Yields:\n        The newly-created span.\n    \"\"\"\n    return self.tracer.start_as_current_span(\n        name,\n        context,\n        kind,\n        attributes,\n        links,\n        start_time,\n        record_exception,\n        set_status_on_exception,\n        end_on_exit,\n    )\n
        "},{"location":"py_ref/misc/","title":"misc","text":"

        Miscellaneous utility functions for BitBazaar.

        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture","title":"StdCapture(stderr=False)","text":"

        Bases: list

        Capture stdout/stderr for the duration of a with block.

        (e.g. print statements)

        Example:

        with StdCapture(stderr=True) as out: # By default only captures stdout\n    print('hello')\n    sys.stderr.write('world')\nprint(out)  # ['hello', 'world']\n

        Creation of new capturer.

        By default only stdout is captured, stderr=True enables capturing stderr too.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __init__(self, stderr: bool = False):\n    \"\"\"Creation of new capturer.\n\n    By default only stdout is captured, stderr=True enables capturing stderr too.\n    \"\"\"\n    # Prep all instance vars:\n    self.stderr_capture = stderr\n    self._out = []\n    self._stdout = sys.stdout\n    self._stderr = sys.stderr\n    self._buf = io.StringIO()\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture.__enter__","title":"__enter__()","text":"

        Entering the capturing context.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __enter__(self) -> list[str]:\n    \"\"\"Entering the capturing context.\"\"\"\n    # Overwrite sinks which are being captured with the buffer:\n    sys.stdout = self._buf\n    if self.stderr_capture:\n        sys.stderr = self._buf\n\n    return self._out\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.StdCapture.__exit__","title":"__exit__(*args)","text":"

        On context exit.

        Source code in py/bitbazaar/misc/_std_capture.py
        def __exit__(self, *args):  # type: ignore\n    \"\"\"On context exit.\"\"\"\n    # First reset the global streams:\n    sys.stdout = self._stdout\n    sys.stderr = self._stderr\n\n    self._out.extend(self._buf.getvalue().splitlines())\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.copy_sig","title":"copy_sig(f)","text":"

        Keep e.g. a class's init signature when subclassing.

        From: https://github.com/python/typing/issues/769#issuecomment-903760354

        Source code in py/bitbazaar/misc/__init__.py
        def copy_sig(f: _T) -> tp.Callable[[tp.Any], _T]:\n    \"\"\"Keep e.g. a class's __init__ signature when subclassing.\n\n    From: https://github.com/python/typing/issues/769#issuecomment-903760354\n    \"\"\"\n    return lambda x: x\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.in_ci","title":"in_ci()","text":"

        Returns true if it looks like the program is running from a CI service, e.g. Github Actions.

        Source code in py/bitbazaar/misc/__init__.py
        def in_ci() -> bool:\n    \"\"\"Returns true if it looks like the program is running from a CI service, e.g. Github Actions.\"\"\"\n    return any([var in os.environ for var in _CI_ENV_VARS])\n
        "},{"location":"py_ref/misc/#py.bitbazaar.misc.is_tcp_port_listening","title":"is_tcp_port_listening(host, port)","text":"

        Check if something is listening on a certain tcp port or not.

        Source code in py/bitbazaar/misc/__init__.py
        def is_tcp_port_listening(\n    host: str, port: int\n) -> bool:  # pragma: no cover (is covered but not in CI)\n    \"\"\"Check if something is listening on a certain tcp port or not.\"\"\"\n    try:\n        # Create a TCP socket\n        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        s.settimeout(1)  # Set timeout to 1 second\n\n        # Attempt to establish a connection to the port\n        s.connect((host, port))\n\n        # If connection is successful, something is listening on the port\n        s.close()\n        return True\n    except OSError:\n        return False\n
        "},{"location":"py_ref/testing/","title":"testing","text":"

        Useful downstream testing utilities.

        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager","title":"TmpFileManager()","text":"

        A context manager for managing temporary files and directories.

        Usage: with TmpFileManager() as manager: file_path = manager.tmpfile(content=\"Hello, temporary file!\") dir_path = manager.tmp_dir()

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def __init__(self):\n    self.root_dir = tempfile.mkdtemp()\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.cleanup","title":"cleanup()","text":"

        Clean up created temporary files and directories.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def cleanup(self):\n    \"\"\"Clean up created temporary files and directories.\"\"\"\n    shutil.rmtree(self.root_dir)\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.tmpdir","title":"tmpdir(parent=None, name=None)","text":"

        Create a temporary directory.

        Parameters: - parent: Optional directory to create the temporary directory in. Otherwise will be placed in root.

        Returns: - The path to the created temporary directory.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def tmpdir(\n    self, parent: tp.Optional[str] = None, name: tp.Optional[str] = None\n) -> pathlib.Path:\n    \"\"\"Create a temporary directory.\n\n    Parameters:\n    - parent: Optional directory to create the temporary directory in. Otherwise will be placed in root.\n\n    Returns:\n    - The path to the created temporary directory.\n    \"\"\"\n    if parent is None:\n        parent = self.root_dir\n\n    final_path = pathlib.Path(os.path.join(parent, str(uuid.uuid4()) if name is None else name))\n    os.mkdir(final_path)\n\n    self.dirs_created += 1\n    return final_path\n
        "},{"location":"py_ref/testing/#py.bitbazaar.testing.TmpFileManager.tmpfile","title":"tmpfile(content, suffix=None, parent=None, full_name=None)","text":"

        Create a temporary file.

        Parameters: - content: The content to write to the temporary file. - suffix: Optional suffix to append to the temporary file. Otherwise will be created with tempfile. - parent: Optional directory to create the temporary file in. Otherwise will be placed in root. - full_name: Optional full name of the temporary file, overrides suffix. Otherwise will be created with tempfile.

        Returns: - The path to the created temporary file.

        Source code in py/bitbazaar/testing/_tmp_file_manager.py
        def tmpfile(\n    self,\n    content: str,\n    suffix: tp.Optional[str] = None,\n    parent: tp.Optional[tp.Union[str, pathlib.Path]] = None,\n    full_name: tp.Optional[str] = None,\n) -> pathlib.Path:\n    \"\"\"Create a temporary file.\n\n    Parameters:\n    - content: The content to write to the temporary file.\n    - suffix: Optional suffix to append to the temporary file. Otherwise will be created with tempfile.\n    - parent: Optional directory to create the temporary file in. Otherwise will be placed in root.\n    - full_name: Optional full name of the temporary file, overrides suffix. Otherwise will be created with tempfile.\n\n    Returns:\n    - The path to the created temporary file.\n    \"\"\"\n    if parent is None:\n        parent = self.root_dir\n\n    filename: str\n    if full_name is not None:\n        filename = full_name\n    elif suffix is not None:\n        filename = str(uuid.uuid4()) + suffix\n    else:\n        filename = str(uuid.uuid4())\n\n    final_path = pathlib.Path(os.path.join(parent, filename))\n\n    with open(final_path, \"w\") as file:\n        file.write(content)\n\n    self.files_created += 1\n\n    return final_path\n
        "},{"location":"py_rust_ref/","title":"bitbazaar_rs","text":""},{"location":"py_rust_ref/#py_rust.python.bitbazaar_rs.hello","title":"hello()","text":"

        Returns Hello, World!

        Returns:

        Name Type Description str str

        Hello, World!

        Source code in py_rust/python/bitbazaar_rs/__init__.py
        from importlib.metadata import version\n\n__version__ = version(\"bitbazaar_rs\")\n\n__all__ = [\"__version__\"]\n\n# Import the rust modules and top level fns:\n
        "},{"location":"py_rust_ref/SUMMARY/","title":"SUMMARY","text":"
        • bitbazaar_rs
          • utils
        "},{"location":"py_rust_ref/utils/","title":"utils","text":""},{"location":"py_rust_ref/utils/#py_rust.python.bitbazaar_rs.utils.add","title":"add(a, b)","text":"

        Add two numbers.

        Parameters:

        Name Type Description Default a float

        First number.

        required b float

        Second number.

        required

        Returns:

        Type Description float

        Sum of the two numbers.

        Source code in py_rust/python/bitbazaar_rs/utils.pyi
        def add(a: float, b: float) -> float:\n    \"\"\"Add two numbers.\n\n    Args:\n        a: First number.\n        b: Second number.\n\n    Returns:\n        Sum of the two numbers.\n    \"\"\"\n    ...\n
        "},{"location":"rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/","title":"SourceSerif4 LICENSE 3bb119e13b1258b7","text":"

        Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name \u2018Source\u2019. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.

        This Font Software is licensed under the SIL Open Font License, Version 1.1.

        This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL

        "},{"location":"rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/#sil-open-font-license-version-11-26-february-2007","title":"SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007","text":"

        PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.

        The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

        DEFINITIONS \"Font Software\" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

        \"Reserved Font Name\" refers to any names specified as such after the copyright statement(s).

        \"Original Version\" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

        \"Modified Version\" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

        \"Author\" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

        PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

        1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

        2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

        3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.

        4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.

        5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

        TERMINATION This license becomes null and void if any of the above conditions are not met.

        DISCLAIMER THE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

        "}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 3702b4c4..f9d2fdb4 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,67 +2,67 @@ https://zakstucke.github.io/bitbazaar/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/CODE_OF_CONDUCT/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/CONTRIBUTING/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/LICENSE/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_ref/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_ref/SUMMARY/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_ref/log/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_ref/misc/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_ref/testing/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_rust_ref/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_rust_ref/SUMMARY/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/py_rust_ref/utils/ - 2024-05-30 + 2024-05-31 daily https://zakstucke.github.io/bitbazaar/rust_ref/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7/ - 2024-05-30 + 2024-05-31 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 89f91bfd..4b408f6b 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ