1"use strict";(globalThis.webpackChunkdocs=globalThis.webpackChunkdocs||[]).push([[113],{90020(t,e,i){i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"libraries/standard_library/meta/trait_constraint","title":"TraitConstraint","description":"Represent trait constraints at compile time for searching and matching trait implementations.","source":"@site/versioned_docs/version-v1.0.0-rc.2/libraries/standard_library/meta/trait_constraint.md","sourceDirName":"libraries/standard_library/meta","slug":"/libraries/standard_library/meta/trait_constraint","permalink":"/docs/libraries/standard_library/meta/trait_constraint","draft":false,"unlisted":false,"editUrl":"https://github.com/noir-lang/noir/edit/master/docs/versioned_docs/version-v1.0.0-rc.2/libraries/standard_library/meta/trait_constraint.md","tags":[],"version":"v1.0.0-rc.2","frontMatter":{"title":"TraitConstraint","description":"Represent trait constraints at compile time for searching and matching trait implementations."},"sidebar":"sidebar","previous":{"title":"Quoted","permalink":"/docs/libraries/standard_library/meta/quoted"},"next":{"title":"TraitDefinition","permalink":"/docs/libraries/standard_library/meta/trait_def"}}');var r=i(74848),a=i(28453);const s={title:"TraitConstraint",description:"Represent trait constraints at compile time for searching and matching trait implementations."},o=void 0,c={},d=[{value:"Trait Implementations",id:"trait-implementations",level:2}];function l(t){const e={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"std::meta::trait_constraint"})," contains methods on the built-in ",(0,r.jsx)(e.code,{children:"TraitConstraint"})," type which represents\na trait constraint that can be used to search for a trait implementation. This is similar\nsyntactically to just the trait itself, but can also contain generic arguments. E.g. ",(0,r.jsx)(e.code,{children:"Eq"}),", ",(0,r.jsx)(e.code,{children:"Default"}),",\n",(0,r.jsx)(e.code,{children:"BuildHasher<Poseidon2Hasher>"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:["This type currently has no public methods but it can be used alongside ",(0,r.jsx)(e.code,{children:"Type"})," in ",(0,r.jsx)(e.code,{children:"implements"})," or ",(0,r.jsx)(e.code,{children:"get_trait_impl"}),"."]}),"\n",(0,r.jsx)(e.h2,{id:"trait-implementations",children:"Trait Implementations"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-rust",children:"impl Eq for TraitConstraint\nimpl Hash for TraitConstraint\n"})})]})}function m(t={}){const{wrapper:e}={...(0,a.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(l,{...t})}):l(t)}},28453(t,e,i){i.d(e,{R:()=>s,x:()=>o});var n=i(96540);const r={},a=n.createContext(r);function s(t){const e=n.useContext(a);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),n.createElement(a.Provider,{value:e},t.children)}}}]);
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.