1"use strict";(globalThis.webpackChunkdocs=globalThis.webpackChunkdocs||[]).push([[317],{72088(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"v1.0.0-rc.0","label":"v1.0.0-rc.0","banner":"unmaintained","badge":true,"noIndex":true,"className":"docs-version-v1.0.0-rc.0","isLast":false,"docsSidebars":{"sidebar":[{"type":"link","href":"/docs/v1.0.0-rc.0/","label":"Noir","docId":"index","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/getting_started_with_ai","label":"Getting Started with AI","docId":"getting_started_with_ai","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/getting_started_manually","label":"Getting Started Manually","docId":"getting_started_manually","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/installation","label":"Installation","docId":"installation","unlisted":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"Project Structure","collapsible":false,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/project_structure/crates_and_packages","label":"Crates and Packages","docId":"project_structure/crates_and_packages","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/project_structure/dependencies","label":"Dependencies","docId":"project_structure/dependencies","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/project_structure/modules","label":"Modules","docId":"project_structure/modules","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/project_structure/workspaces","label":"Workspaces","docId":"project_structure/workspaces","unlisted":false}],"collapsed":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"Language","collapsible":false,"items":[{"type":"category","label":"Data Types","items":[{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/fields","label":"Fields","docId":"language/data_types/fields","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/integers","label":"Integers","docId":"language/data_types/integers","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/booleans","label":"Booleans","docId":"language/data_types/booleans","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/strings","label":"Strings","docId":"language/data_types/strings","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/arrays","label":"Arrays","docId":"language/data_types/arrays","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/vectors","label":"Vectors","docId":"language/data_types/vectors","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/tuples","label":"Tuples","docId":"language/data_types/tuples","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/structs","label":"Structs","docId":"language/data_types/structs","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/references","label":"References","docId":"language/data_types/references","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/function_types","label":"Function types","docId":"language/data_types/function_types","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_types/coercions","label":"Type Casting and Coercions","docId":"language/data_types/coercions","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/v1.0.0-rc.0/language/data_types/"},{"type":"link","href":"/docs/v1.0.0-rc.0/language/functions","label":"Functions","docId":"language/functions","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/control_flow","label":"Control Flow","docId":"language/control_flow","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/ops","label":"Logical Operations","docId":"language/ops","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/assert","label":"Assert Function","docId":"language/assert","unlisted":false}
1,{"type":"link","href":"/docs/v1.0.0-rc.0/language/unconstrained","label":"Unconstrained Functions","docId":"language/unconstrained","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/oracles","label":"Oracles","docId":"language/oracles","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/generics","label":"Generics","docId":"language/generics","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/globals","label":"Global Variables","docId":"language/globals","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/mutability","label":"Mutability","docId":"language/mutability","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/lambdas","label":"Lambdas","docId":"language/lambdas","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/comments","label":"Comments","docId":"language/comments","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/shadowing","label":"Shadowing","docId":"language/shadowing","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/data_bus","label":"Data Bus","docId":"language/data_bus","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/traits","label":"Traits","docId":"language/traits","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/attributes","label":"Attributes","docId":"language/attributes","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/language/comptime","label":"Compile-time Code & Metaprogramming","docId":"language/comptime","unlisted":false}],"collapsed":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"Libraries","collapsible":false,"items":[{"type":"category","label":"Standard Library","items":[{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/black_box_fns","label":"Black Box Functions","docId":"libraries/standard_library/black_box_fns","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/bn254","label":"Bn254 Field Library","docId":"libraries/standard_library/bn254","unlisted":false},{"type":"category","label":"Containers","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/containers/boundedvec","label":"Bounded Vectors","docId":"libraries/standard_library/containers/boundedvec","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/containers/uhashmap","label":"UHashMap","docId":"libraries/standard_library/containers/uhashmap","unlisted":false}]},{"type":"category","label":"Cryptographic Primitives","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/cryptographic_primitives/ciphers","label":"Ciphers","docId":"libraries/standard_library/cryptographic_primitives/ciphers","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/cryptographic_primitives/embedded_curve_ops","label":"Scalar multiplication","docId":"libraries/standard_library/cryptographic_primitives/embedded_curve_ops","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/cryptographic_primitives/hashes","label":"Hash methods","docId":"libraries/standard_library/cryptographic_primitives/hashes","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/cryptographic_primitives/signatures","label":"Signatures","docId":"libraries/standard_library/cryptographic_primitives/signatures","unlisted":false}],"href":"/docs/v1.0.0-rc.0/libraries/standard_library/cryptographic_primitives/"},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/fmtstr","label":"fmtstr","docId":"libraries/standard_library/fmtstr","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/is_unconstrained","label":"Is Unconstrained Function","docId":"libraries/standard_library/is_unconstrained","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/logging","label":"Logging and Panics","docId":"libraries/standard_library/logging","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/mem","label":"Memory Module","docId":"libraries/standard_library/mem","unlisted":false},{"type":"category","label":"Metaprogramming","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/ctstring","label":"CtStr
1ing","docId":"libraries/standard_library/meta/ctstring","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/expr","label":"Expr","docId":"libraries/standard_library/meta/expr","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/function_def","label":"FunctionDefinition","docId":"libraries/standard_library/meta/function_def","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/item_visibility","label":"ItemVisibility","docId":"libraries/standard_library/meta/item_visibility","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/location","label":"Location","docId":"libraries/standard_library/meta/location","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/module","label":"Module","docId":"libraries/standard_library/meta/module","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/op","label":"UnaryOp and BinaryOp","docId":"libraries/standard_library/meta/op","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/quoted","label":"Quoted","docId":"libraries/standard_library/meta/quoted","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/trait_constraint","label":"TraitConstraint","docId":"libraries/standard_library/meta/trait_constraint","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/trait_def","label":"TraitDefinition","docId":"libraries/standard_library/meta/trait_def","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/trait_impl","label":"TraitImpl","docId":"libraries/standard_library/meta/trait_impl","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/typ","label":"Type","docId":"libraries/standard_library/meta/typ","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/type_def","label":"TypeDefinition","docId":"libraries/standard_library/meta/type_def","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/typed_expr","label":"TypedExpr","docId":"libraries/standard_library/meta/typed_expr","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/unresolved_type","label":"UnresolvedType","docId":"libraries/standard_library/meta/unresolved_type","unlisted":false}],"href":"/docs/v1.0.0-rc.0/libraries/standard_library/meta/"},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/options","label":"Option<T> Type","docId":"libraries/standard_library/options","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/recursion","label":"Recursive Proofs","docId":"libraries/standard_library/recursion","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/libraries/standard_library/traits","label":"Traits","docId":"libraries/standard_library/traits","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"BigNum","href":"https://github.com/noir-lang/noir-bignum"},{"type":"link","label":"BigCurve","href":"https://github.com/noir-lang/noir_bigcurve"},{"type":"link","label":"Base64","href":"https://github.com/noir-lang/noir_base64"},{"type":"link","label":"More Libraries","href":"https://github.com/noir-lang/awesome-noir?tab=readme-ov-file#libraries"}],"collapsed":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"Tooling","collapsible":false,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/language_server","label":"Language Server","docId":"tooling/language_server","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/tests","label":"Tests","docId":"tooling/tests","unlisted":false},{"type":"category","label":"Debugger","items":[{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/debugger/debugger_vscode","label":"VS Code Debugger","docId":"tooling/debugger/debugger_vscode","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/debugger/debugger_repl","label":"REPL Debugger","docId":"tooling/debugger/debugger_repl","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/debugger/debugger_known_limitations","label":"Known Limitations","docId":"tooling/debugger/debugger_known_limitations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/v1.0.0-rc.0/tooling/debugger/"},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/fuzzer","label":"Fuzzer","docId":"tooling/fuzzer","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/shell_completions","label":"Setting up shell completions","docId":"tooling/shell_completions","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/profiler","label":"Profiler","docId":"tooling/profiler","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/devcontainer","label":"Dev Containers","docId":"tooling/devcontainer","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/tooling/noir_codegen","label":"Noir Codegen for Type
1Script","docId":"tooling/noir_codegen","unlisted":false}],"collapsed":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"Guides","collapsible":false,"items":[{"type":"link","label":"Generate a Solidity Verifier","href":"https://barretenberg.aztec.network/docs/how_to_guides/how-to-solidity-verifier"},{"type":"link","label":"Recursive Aggregation","href":"https://barretenberg.aztec.network/docs/how_to_guides/recursive_aggregation"},{"type":"link","label":"Noir and Barretenberg on the Browser","href":"https://barretenberg.aztec.network/docs/how_to_guides/on-the-browser"},{"type":"link","href":"/docs/v1.0.0-rc.0/guides/how_to_use_oracles","label":"How to use Oracles","docId":"guides/how_to_use_oracles","unlisted":false},{"type":"category","label":"Debugging","items":[{"type":"link","href":"/docs/v1.0.0-rc.0/guides/debugging/debugging_with_vs_code","label":"Using the VS Code Debugger","docId":"guides/debugging/debugging_with_vs_code","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/guides/debugging/debugging_with_the_repl","label":"Using the REPL Debugger","docId":"guides/debugging/debugging_with_the_repl","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","href":"/docs/v1.0.0-rc.0/guides/thinking_in_circuits","label":"Thinking in Circuits","docId":"guides/thinking_in_circuits","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/guides/oracles","label":"Oracles","docId":"guides/oracles","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/guides/building_a_web_app","label":"Building a web app with Noir and Barretenberg","docId":"guides/building_a_web_app","unlisted":false}],"collapsed":false},{"type":"html","value":"<div class=\\"divider\\"></div>","defaultStyle":true},{"type":"category","label":"References","collapsible":false,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/reference/nargo_commands","label":"Nargo","docId":"reference/nargo_commands","unlisted":false},{"type":"category","label":"NoirJS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"noir_js","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"classes","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_js/classes/Noir","label":"Class: Noir","docId":"reference/NoirJS/noir_js/classes/Noir","unlisted":false}]},{"type":"category","label":"type-aliases","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_js/type-aliases/ErrorWithPayload","label":"Type Alias: ErrorWithPayload","docId":"reference/NoirJS/noir_js/type-aliases/ErrorWithPayload","unlisted":false}]}],"href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_js/"},{"type":"category","label":"noir_wasm","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"functions","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_wasm/functions/compile","label":"Function: compile()","docId":"reference/NoirJS/noir_wasm/functions/compile","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_wasm/functions/compile_contract","label":"Function: compile\\\\_contract()","docId":"reference/NoirJS/noir_wasm/functions/compile_contract","unlisted":false},{"type":"link","href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_wasm/functions/inflateDebugSymbols","label":"Function: inflateDebugSymbols()","docId":"reference/NoirJS/noir_wasm/functions/inflateDebugSymbols","unlisted":false}]}],"href":"/docs/v1.0.0-rc.0/reference/NoirJS/noir_wasm/"}]},{"type":"link","label":"ACIR","href":"https://noir-lang.github.io/noir/docs/acir/circuit/index.html"},{"type":"link","label":"Brillig","href":"https://noir-lang.github.io/noir/docs/brillig/index.html"}],"collapsed":false}]},"docs":{"getting_started_manually":{"id":"getting_started_manually","title":"Getting Started Manually","description":"Create and run your first Noir project manually.","sidebar":"sidebar"},"getting_started_with_ai":{"id":"getting_started_with_ai","title":"Getting Started with AI","description":"Create and run your first Noir project using an AI agent.","sidebar":"sidebar"},"guides/building_a_web_app":{"id":"guides/building_a_web_app","title":"Building a web app with Noir and Barretenberg","description":"Learn how to setup a new app that uses
1Noir to generate and verify zero-knowledge SNARK proofs in a typescript or javascript environment.","sidebar":"sidebar"},"guides/debugging/debugging_with_the_repl":{"id":"guides/debugging/debugging_with_the_repl","title":"Using the REPL Debugger","description":"Step-by-step guide on how to debug your Noir circuits with the REPL Debugger.","sidebar":"sidebar"},"guides/debugging/debugging_with_vs_code":{"id":"guides/debugging/debugging_with_vs_code","title":"Using the VS Code Debugger","description":"Step-by-step guide on how to debug your Noir circuits with the VS Code Debugger configuration and features.","sidebar":"sidebar"},"guides/how_to_use_oracles":{"id":"guides/how_to_use_oracles","title":"How to use Oracles","description":"Learn how to use oracles in your Noir program with examples in both Nargo and NoirJS. This guide also covers writing a JSON RPC server and providing custom foreign call handlers for NoirJS.","sidebar":"sidebar"},"guides/oracles":{"id":"guides/oracles","title":"Oracles","description":"This guide provides an in-depth understanding of how Oracles work in Noir programming. Learn how to use outside calculations in your programs, constrain oracles, and understand their uses and limitations.","sidebar":"sidebar"},"guides/thinking_in_circuits":{"id":"guides/thinking_in_circuits","title":"Thinking in Circuits","description":"Considerations when writing Noir programs","sidebar":"sidebar"},"index":{"id":"index","title":"Noir","description":"Noir is an open-source, Rust-influenced domain-specific language for writing privacy-preserving programs with zero-knowledge proofs, requiring no prior knowledge of the underlying mathematics or cryptography.","sidebar":"sidebar"},"installation":{"id":"installation","title":"Installation","description":"There are different ways to install Nargo, the one-stop shop and command-line tool for developing Noir programs. This guide explains how to specify which version to install when using noirup, and using WSL for windows.","sidebar":"sidebar"},"language/assert":{"id":"language/assert","title":"Assert Function","description":"Learn about the `assert` and `static_assert` functions in Noir, which can be used to explicitly constrain the predicate or comparison expression that follows to be true, and what happens if the expression is false at runtime or compile-time, respectively.","sidebar":"sidebar"},"language/attributes":{"id":"language/attributes","title":"Attributes","description":"Learn how to use attributes in Noir. Attributes are metadata that can be applied to data types, functions and variables.","sidebar":"sidebar"},"language/comments":{"id":"language/comments","title":"Comments","description":"Learn how to write comments in Noir programming language. A comment is a line of code that is ignored by the compiler, but it can be read by programmers. Single-line and multi-line comments are supported in Noir.","sidebar":"sidebar"},"language/comptime":{"id":"language/comptime","title":"Compile-time Code & Metaprogramming","description":"Learn how to use metaprogramming in Noir to create macros or derive your own traits","sidebar":"sidebar"},"language/control_flow":{"id":"language/control_flow","title":"Control Flow","description":"Learn how to use loops and if expressions in the Noir programming language. Discover the syntax and examples for for loops and if-else statements.","sidebar":"sidebar"},"language/data_bus":{"id":"language/data_bus","title":"Data Bus","description":"Use call_data and return_data to enable a backend optimization for more efficient recursion, with examples and constraints.","sidebar":"sidebar"},"language/data_types/arrays":{"id":"language/data_types/arrays","title":"Arrays","description":"Dive into the Array data type in Noir. Grasp its methods, practical examples, and best practices for efficiently using Arrays in your Noir code.","sidebar":"sidebar"},"language/data_types/booleans":{"id":"language/data_types/booleans","title":"Booleans","description":"Delve into the Boolean data type in Noir. Understand its methods, practical examples, and best practices for using Booleans in your Noir programs.","sidebar":"sidebar"},"language/data_types/coercions":{"id":"language/data_types/coercions","title":"Type Casting and Coercions","description":"Noir\'s explicit type casts and implicit type coercions","sidebar":"sidebar"},"language/data_types/fields":{"id":"language/data_types/fields","title":"Fields","description":"Dive deep into the Field data type in Noir. Understand its methods, practical examples, and best practices to effectively use Fields in your Noir programs.","sidebar":"sidebar"},"language/data_types/function_types":{"id":"language/data_types/function_types","title":"Function types","description":"Define and use function types for higher\u2011order functions in Noir, including syntax, examples, and notes on closures.","sidebar":"sidebar"},"language/data_types/index":{"id":"language/data_types/index","title":"Data Types","description":"Get a clear understanding of the two categories of Noir data types - primitive types and compound types. Learn about their characteristics, differences, and how to use them in your Noir programming.","sidebar":"sidebar"},"language/data_types/integers":{"id":"language/data_types/integers","title":"Integers","description":"Explore the Integer data type in Noir. Learn about its methods, see real-world examples, and grasp how to efficie
1ntly use Integers in your Noir code.","sidebar":"sidebar"},"language/data_types/references":{"id":"language/data_types/references","title":"References","description":"Learn about reference types in Noir, including immutable references (&T) and mutable references (&mut T).","sidebar":"sidebar"},"language/data_types/strings":{"id":"language/data_types/strings","title":"Strings","description":"Discover the String data type in Noir. Learn about its methods, see real-world examples, and understand how to effectively manipulate and use Strings in Noir.","sidebar":"sidebar"},"language/data_types/structs":{"id":"language/data_types/structs","title":"Structs","description":"Explore the Struct data type in Noir. Learn about its methods, see real-world examples, and grasp how to effectively define and use Structs in your Noir programs.","sidebar":"sidebar"},"language/data_types/tuples":{"id":"language/data_types/tuples","title":"Tuples","description":"Dive into the Tuple data type in Noir. Understand its methods, practical examples, and best practices for efficiently using Tuples in your Noir code.","sidebar":"sidebar"},"language/data_types/vectors":{"id":"language/data_types/vectors","title":"Vectors","description":"Explore the Vector data type in Noir. Understand its methods, see real-world examples, and learn how to effectively use Vectors in your Noir programs.","sidebar":"sidebar"},"language/functions":{"id":"language/functions","title":"Functions","description":"Learn how to declare functions and methods in Noir, a programming language with Rust semantics. This guide covers parameter declaration, return types, call expressions, and more.","sidebar":"sidebar"},"language/generics":{"id":"language/generics","title":"Generics","description":"Learn how to use Generics in Noir","sidebar":"sidebar"},"language/globals":{"id":"language/globals","title":"Global Variables","description":"Learn about global variables in Noir. Discover how to declare, modify, and use them in your programs.","sidebar":"sidebar"},"language/lambdas":{"id":"language/lambdas","title":"Lambdas","description":"Learn how to use anonymous functions in Noir programming language.","sidebar":"sidebar"},"language/mutability":{"id":"language/mutability","title":"Mutability","description":"Learn about mutable variables in Noir. Discover how to declare, modify, and use them in your programs.","sidebar":"sidebar"},"language/ops":{"id":"language/ops","title":"Logical Operations","description":"Learn about the supported arithmetic and logical operations in the Noir programming language. Discover how to perform operations on private input types, integers, and booleans.","sidebar":"sidebar"},"language/oracles":{"id":"language/oracles","title":"Oracles","description":"Dive into how Noir supports Oracles via RPC calls, and learn how to declare an Oracle in Noir with our comprehensive guide.","sidebar":"sidebar"},"language/shadowing":{"id":"language/shadowing","title":"Shadowing","description":"Rebind variables with the same name to derive new values, enabling ergonomic \\"temporary mutability\\" patterns in Noir.","sidebar":"sidebar"},"language/traits":{"id":"language/traits","title":"Traits","description":"Traits in Noir can be used to abstract out a common interface for functions across several data types.","sidebar":"sidebar"},"language/unconstrained":{"id":"language/unconstrained","title":"Unconstrained Functions","description":"Learn about what unconstrained functions in Noir are, how to use them and when you\'d want to.","sidebar":"sidebar"},"libraries/standard_library/black_box_fns":{"id":"libraries/standard_library/black_box_fns","title":"Black Box Functions","description":"Black box functions are functions in Noir that rely on backends implementing support for specialized constraints.","sidebar":"sidebar"},"libraries/standard_library/bn254":{"id":"libraries/standard_library/bn254","title":"Bn254 Field Library","description":"Optimized helpers for bn254 Fr\u2014fast comparisons and decomposition tailored for Noir\u2019s standard library.","sidebar":"sidebar"},"libraries/standard_library/containers/boundedvec":{"id":"libraries/standard_library/containers/boundedvec","title":"Bounded Vectors","description":"Growable vectors with a fixed maximum length; safer and more efficient than vectors, with rich methods for access and mutation.","sidebar":"sidebar"},"libraries/standard_library/containers/uhashmap":{"id":"libraries/standard_library/containers/uhashmap","title":"UHashMap","description":"A growable key\u2013value map with a generic hasher.","sidebar":"sidebar"},"libraries/standard_library/cryptographic_primitives/ciphers":{"id":"libraries/standard_library/cryptographic_primitives/ciphers","title":"Ciphers","description":"Learn about the implemented ciphers ready to use for any Noir project","sidebar":"sidebar"},"libraries/standard_library/cryptographic_primitives/embedded_curve_ops":{"id":"libraries/standard_library/cryptographic_primitives/embedded_curve_ops","title":"Scalar multiplication","description":"See how you can perform scalar multiplication in Noir","sidebar":"sidebar"},"libraries/standard_library/cryptographic_primitives/hashes":{"id":"libraries/standard_library/cryptographic_primitives/hashes","title":"Hash methods","description":"Learn about the cryptographic primitives ready to use for any Noir project","sidebar":"sidebar"},"libraries/standard_library/cryptographic_primitives/index":{"id":"libraries/standard_library/cryptographic_primitives/index","title":"Cryptographic Primitives","description":"Learn about the cryptographic primitives ready to use for any Noir project","sidebar":"sidebar"},"libraries/standard_library/cryptographic_primitives/signatures":{"id":"libraries/standard_library/cryptographic_primitives/signatures","title":"Signatures","description":"Learn about signature verification in Noir, including the standard library\'s ECDSA verification over the secp256k1 and secp256r1 curves and signature libraries maintained outside of it","sidebar":"sidebar"},"libraries/standard_library/fmtstr":{"id":"libraries/standard_library/fmtstr","title":"fmtstr","description":"Format str
1ing literals at compile time\u2014inspect raw contents or emit quoted strings for macro generation.","sidebar":"sidebar"},"libraries/standard_library/is_unconstrained":{"id":"libraries/standard_library/is_unconstrained","title":"Is Unconstrained Function","description":"The is_unconstrained function returns whether the context at that point of the program is unconstrained or not.","sidebar":"sidebar"},"libraries/standard_library/logging":{"id":"libraries/standard_library/logging","title":"Logging and Panics","description":"Learn how to use the println statement for debugging in Noir with this tutorial. Understand the basics of logging in Noir and how to implement it in your code.","sidebar":"sidebar"},"libraries/standard_library/mem":{"id":"libraries/standard_library/mem","title":"Memory Module","description":"This module contains functions which manipulate memory in a low-level way","sidebar":"sidebar"},"libraries/standard_library/meta/ctstring":{"id":"libraries/standard_library/meta/ctstring","title":"CtString","description":"Compile-time, dynamically sized strings for `comptime`\u2014build, append, and emit quoted string literals.","sidebar":"sidebar"},"libraries/standard_library/meta/expr":{"id":"libraries/standard_library/meta/expr","title":"Expr","description":"Introspect and transform quoted expressions at compile time\u2014inspect structure, resolve types, and modify sub-expressions.","sidebar":"sidebar"},"libraries/standard_library/meta/function_def":{"id":"libraries/standard_library/meta/function_def","title":"FunctionDefinition","description":"Inspect and mutate function definitions in `comptime`\u2014read signatures, body, attributes, and adjust parameters or return types.","sidebar":"sidebar"},"libraries/standard_library/meta/index":{"id":"libraries/standard_library/meta/index","title":"Metaprogramming","description":"Noir\'s Metaprogramming API","sidebar":"sidebar"},"libraries/standard_library/meta/item_visibility":{"id":"libraries/standard_library/meta/item_visibility","title":"ItemVisibility","description":"Inspect item visibility at compile time and emit it as quoted syntax.","sidebar":"sidebar"},"libraries/standard_library/meta/location":{"id":"libraries/standard_library/meta/location","title":"Location","description":"A source location at compile time, used to attach diagnostics (errors and warnings) to specific items or expressions.","sidebar":"sidebar"},"libraries/standard_library/meta/module":{"id":"libraries/standard_library/meta/module","title":"Module","description":"Work with modules in `comptime`\u2014query names, list functions/structs, detect contracts, and add new items.","sidebar":"sidebar"},"libraries/standard_library/meta/op":{"id":"libraries/standard_library/meta/op","title":"UnaryOp and BinaryOp","description":"Represent and inspect operators at compile time\u2014check kinds, and emit quoted operator tokens.","sidebar":"sidebar"},"libraries/standard_library/meta/quoted":{"id":"libraries/standard_library/meta/quoted","title":"Quoted","description":"Token streams produced by `quote { ... }`\u2014parse as expressions, modules, types, and inspect raw tokens.","sidebar":"sidebar"},"libraries/standard_library/meta/trait_constraint":{"id":"libraries/standard_library/meta/trait_constraint","title":"TraitConstraint","description":"Represent trait constraints at compile time for searching and matching trait implementations.","sidebar":"sidebar"},"libraries/standard_library/meta/trait_def":{"id":"libraries/standard_library/meta/trait_def","title":"TraitDefinition","description":"Work with trait definitions at compile time\u2014convert to trait constraints and inspect basic properties.","sidebar":"sidebar"},"libraries/standard_library/meta/trait_impl":{"id":"libraries/standard_library/meta/trait_impl","title":"TraitImpl","description":"Inspect concrete trait implementations\u2014list methods and read trait generic arguments in `comptime`.","sidebar":"sidebar"},"libraries/standard_library/meta/typ":{"id":"libraries/standard_library/meta/typ","title":"Type","description":"Represent and analyze types at compile time\u2014query structure, check trait bounds, and resolve trait impls.","sidebar":"sidebar"},"libraries/standard_library/meta/type_def":{"id":"libraries/standard_library/meta/type_def","title":"TypeDefinition","description":"Inspect and transform struct/enum type definitions\u2014fields, generics, attributes, and module context.","sidebar":"sidebar"}
1,"libraries/standard_library/meta/typed_expr":{"id":"libraries/standard_library/meta/typed_expr","title":"TypedExpr","description":"Resolved, type-checked expressions\u2014retrieve types, access referenced function definitions, and more.","sidebar":"sidebar"},"libraries/standard_library/meta/unresolved_type":{"id":"libraries/standard_library/meta/unresolved_type","title":"UnresolvedType","description":"Work with the syntactic form of types\u2014inspect references, vectors, and primitive kind checks before resolution.","sidebar":"sidebar"},"libraries/standard_library/options":{"id":"libraries/standard_library/options","title":"Option<T> Type","description":"Express presence or absence safely with `Option<T>`\u2014construct, inspect, and transform values without nulls.","sidebar":"sidebar"},"libraries/standard_library/recursion":{"id":"libraries/standard_library/recursion","title":"Recursive Proofs","description":"Learn about how to write recursive proofs in Noir.","sidebar":"sidebar"},"libraries/standard_library/traits":{"id":"libraries/standard_library/traits","title":"Traits","description":"Noir\'s stdlib provides a few commonly used traits.","sidebar":"sidebar"},"project_structure/crates_and_packages":{"id":"project_structure/crates_and_packages","title":"Crates and Packages","description":"Learn how to use Crates and Packages in your Noir project","sidebar":"sidebar"},"project_structure/dependencies":{"id":"project_structure/dependencies","title":"Dependencies","description":"Learn how to specify and manage dependencies in Nargo, allowing you to upload packages to GitHub and use them easily in your project.","sidebar":"sidebar"},"project_structure/modules":{"id":"project_structure/modules","title":"Modules","description":"Learn how to organize your files using modules in Noir, following the same convention as Rust\'s module system. Examples included.","sidebar":"sidebar"},"project_structure/workspaces":{"id":"project_structure/workspaces","title":"Workspaces","description":"Manage multiple related Noir packages in a single repository with a shared workspace, including members, default-member, and command scoping.","sidebar":"sidebar"},"reference/nargo_commands":{"id":"reference/nargo_commands","title":"Nargo","description":"Noir CLI Commands for Noir Prover and Verifier to create, execute, prove and verify programs, generate Solidity verifier smart contract and compile into JSON file containing ACIR representation and ABI of circuit.","sidebar":"sidebar"},"reference/NoirJS/noir_js/classes/Noir":{"id":"reference/NoirJS/noir_js/classes/Noir","title":"Class: Noir","description":"Constructors","sidebar":"sidebar"},"reference/NoirJS/noir_js/index":{"id":"reference/NoirJS/noir_js/index","title":"noir_js","description":"Classes","sidebar":"sidebar"},"reference/NoirJS/noir_js/type-aliases/ErrorWithPayload":{"id":"reference/NoirJS/noir_js/type-aliases/ErrorWithPayload","title":"Type Alias: ErrorWithPayload","description":"Type Declaration","sidebar":"sidebar"},"reference/NoirJS/noir_wasm/functions/compile":{"id":"reference/NoirJS/noir_wasm/functions/compile","title":"Function: compile()","description":"Compiles a Noir project","sidebar":"sidebar"},"reference/NoirJS/noir_wasm/functions/compile_contract":{"id":"reference/NoirJS/noir_wasm/functions/compile_contract","title":"Function: compile\\\\_contract()","description":"Compiles a Noir project","sidebar":"sidebar"},"reference/NoirJS/noir_wasm/functions/inflateDebugSymbols":{"id":"reference/NoirJS/noir_wasm/functions/inflateDebugSymbols","title":"Function: inflateDebugSymbols()","description":"Decompresses and decodes the debug symbols","sidebar":"sidebar"},"reference/NoirJS/noir_wasm/index":{"id":"reference/NoirJS/noir_wasm/index","title":"noir_wasm","description":"Interfaces","sidebar":"sidebar"},"tooling/debugger/debugger_known_limitations":{"id":"tooling/debugger/debugger_known_limitations","title":"Known limitations","description":"An overview of known limitations of the current version of the Noir debugger","sidebar":"sidebar"},"tooling/debugger/debugger_repl":{"id":"tooling/debugger/debugger_repl","title":"REPL Debugger","description":"Noir Debugger REPL options and commands.","sidebar":"sidebar"},"tooling/debugger/debugger_vscode":{"id":"tooling/debugger/debugger_vscode","title":"VS Code Debugger","description":"VS Code Debugger configuration and features.","sidebar":"sidebar"},"tooling/debugger/index":{"id":"tooling/debugger/index","title":"Debugger","description":"Learn about the Noir Debugger, in its REPL or VS Code versions.","sidebar":"sidebar"},"tooling/devcontainer":{"id":"tooling/devcontainer","title":"Dev Containers","description":"Learn how to set up and use Noir development environments with Dev Containers in VS Code and GitHub Codespaces.","sidebar":"sidebar"},"tooling/fuzzer":{"id":"tooling/fuzzer","title":"Fuzzer","description":"The Noir Fuzzer is a tool that allows you to fuzz your Noir programs.","sidebar":"sidebar"},"tooling/language_server":{"id":"tooling/language_server","title":"Language Server","description":"Learn about the Noir Language Server, how to install the components, and configuration that may be required.","sidebar":"sidebar"},"tooling/noir_codegen":{"id":"tooling/noir_codegen","title":"Noir Codegen for Type
1Script","description":"Learn how to use Noir codegen to generate TypeScript bindings","sidebar":"sidebar"},"tooling/profiler":{"id":"tooling/profiler","title":"Profiler","description":"Learn about the Noir Profiler, how to generate execution flamegraphs, identify bottlenecks, and visualize optimizations.","sidebar":"sidebar"},"tooling/shell_completions":{"id":"tooling/shell_completions","title":"Setting up shell completions","description":"Generate and install shell completion scripts for the nargo CLI in zsh, bash, fish, powershell, and elvish.","sidebar":"sidebar"},"tooling/tests":{"id":"tooling/tests","title":"Tests","description":"Learn how to use Nargo to test your Noir program in a quick and easy way","sidebar":"sidebar"}}}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.