facet-html 0.42.0

HTML parsing for facet using the format architecture with html5gum
Documentation
<!doctype html><style>
/* Arborium syntax highlighting - Tokyo Night theme */
a-k { color: #bb9af7; } /* keywords */
a-f { color: #7aa2f7; } /* functions */
a-s { color: #9ece6a; } /* strings */
a-c { color: #565f89; } /* comments */
a-t { color: #2ac3de; } /* types */
a-v { color: #c0caf5; } /* variables */
a-vb { color: #f7768e; } /* built-in variables (self, this) */
a-co { color: #ff9e64; } /* constants */
a-n { color: #ff9e64; } /* numbers */
a-o { color: #89ddff; } /* operators */
a-p { color: #a9b1d6; } /* punctuation */
a-pr { color: #73daca; } /* properties */
a-at { color: #bb9af7; } /* attributes */
a-tg { color: #f7768e; } /* tags (HTML/XML) */
a-m { color: #7dcfff; } /* macros */
a-l { color: #e0af68; } /* labels */
a-ns { color: #2ac3de; } /* namespaces/modules */
a-cr { color: #7aa2f7; } /* constructors */
a-tt { color: #c0caf5; font-weight: bold; } /* titles */
a-st { font-weight: bold; } /* strong */
a-em { } /* emphasis */
a-tu { color: #7aa2f7; text-decoration: underline; } /* links */
a-tl { color: #9ece6a; } /* literals */
a-tx { text-decoration: line-through; } /* strikethrough */
a-da { color: #9ece6a; } /* diff add */
a-dd { color: #f7768e; } /* diff delete */
a-eb { color: #ff9e64; } /* embedded */
a-er { color: #f7768e; text-decoration: wavy underline; } /* errors */
</style><style>
pre .build-info-btn {
    position: absolute;
    top: 0.5rem;
    right: 3.5rem;
    padding: 0.25rem;
    font-size: 0.75rem;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 0.25rem;
    color: inherit;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s;
    line-height: 1;
}
pre:hover .build-info-btn { opacity: 1; }
pre .build-info-btn:hover { background: rgba(255,255,255,0.2); }
pre .build-info-btn.verified { border-color: rgba(50,205,50,0.5); }
.build-info-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #1a1a2e;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 0.5rem;
    padding: 1.5rem 2rem;
    width: 90vw;
    max-width: 800px;
    max-height: 80vh;
    overflow-y: auto;
    z-index: 10000;
    color: #e0e0e0;
    font-family: ui-monospace, monospace;
    font-size: 0.8rem;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
}
.build-info-popup h3 {
    margin: 0 0 1rem 0;
    color: #fff;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.build-info-popup .close-btn {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: none;
    border: none;
    color: #888;
    font-size: 1.25rem;
    cursor: pointer;
    padding: 0.25rem;
}
.build-info-popup .close-btn:hover { color: #fff; }
.build-info-popup dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.4rem 1rem;
}
.build-info-popup dt {
    color: #888;
    font-weight: 500;
}
.build-info-popup dd {
    margin: 0;
    word-break: break-all;
}
.build-info-popup .deps-list {
    max-height: 250px;
    overflow-y: auto;
    background: rgba(0,0,0,0.2);
    padding: 0.5rem 0.75rem;
    border-radius: 0.25rem;
    font-size: 0.7rem;
}
.build-info-popup .deps-list div {
    padding: 0.2rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.build-info-popup .field-icon {
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    margin-right: 0.25rem;
    opacity: 0.7;
}
.build-info-popup .deps-list a,
.build-info-popup .deps-list .dep-local {
    color: #e0e0e0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.build-info-popup .deps-list a:hover {
    color: #fff;
}
.build-info-popup .deps-list a:hover .dep-icon {
    color: #fff;
}
.build-info-popup .deps-list .dep-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: #888;
}
.build-info-popup .deps-list .dep-name {
    font-weight: 500;
}
.build-info-popup .deps-list .dep-version {
    color: #888;
    font-weight: normal;
}
.build-info-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 9999;
}
</style><script>
(function() {
    // SVG icons
    var cratesIoIcon = '<svg class="dep-icon" viewBox="0 0 512 512"><path fill="currentColor" d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v160.4l-160 53.5z"/></svg>';
    var gitIcon = '<svg class="dep-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>';
    var pathIcon = '<svg class="dep-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3H7.5a.25.25 0 01-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75z"/></svg>';
    var rustcIcon = '<svg class="field-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M8 0l1.5 2.5L12 1.5l-.5 2.5 2.5.5-1.5 2.5L15 8l-2.5 1.5.5 2.5-2.5-.5-.5 2.5-2.5-1.5L8 16l-1.5-2.5L4 14.5l.5-2.5-2.5-.5 1.5-2.5L1 8l2.5-1.5L3 4l2.5.5.5-2.5 2.5 1.5L8 0zm0 5a3 3 0 100 6 3 3 0 000-6z"/></svg>';
    var targetIcon = '<svg class="field-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M8 0a8 8 0 100 16A8 8 0 008 0zm0 2a6 6 0 110 12A6 6 0 018 2zm0 2a4 4 0 100 8 4 4 0 000-8zm0 2a2 2 0 110 4 2 2 0 010-4z"/></svg>';
    var clockIcon = '<svg class="field-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M8 0a8 8 0 100 16A8 8 0 008 0zm0 2a6 6 0 110 12A6 6 0 018 2zm-.5 2v4.5l3 2 .75-1.125-2.25-1.5V4h-1.5z"/></svg>';
    var depsIcon = '<svg class="field-icon" viewBox="0 0 16 16"><path fill="currentColor" d="M1 2.5A1.5 1.5 0 012.5 1h3a1.5 1.5 0 011.5 1.5v3A1.5 1.5 0 015.5 7h-3A1.5 1.5 0 011 5.5v-3zm8 0A1.5 1.5 0 0110.5 1h3A1.5 1.5 0 0115 2.5v3A1.5 1.5 0 0113.5 7h-3A1.5 1.5 0 019 5.5v-3zm-8 8A1.5 1.5 0 012.5 9h3A1.5 1.5 0 017 10.5v3A1.5 1.5 0 015.5 15h-3A1.5 1.5 0 011 13.5v-3zm8 0A1.5 1.5 0 0110.5 9h3a1.5 1.5 0 011.5 1.5v3a1.5 1.5 0 01-1.5 1.5h-3A1.5 1.5 0 019 13.5v-3z"/></svg>';

    function formatLocalTime(isoString) {
        try {
            var date = new Date(isoString);
            return date.toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' }) + ' at ' + date.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' });
        } catch (e) {
            return isoString;
        }
    }

    function escapeHtml(str) {
        return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
    }

    window.showBuildInfoPopup = function(info) {
        // Remove existing popup
        var existing = document.querySelector('.build-info-overlay');
        if (existing) existing.remove();

        var overlay = document.createElement('div');
        overlay.className = 'build-info-overlay';

        var popup = document.createElement('div');
        popup.className = 'build-info-popup';

        var depsHtml = '';
        if (info.deps && info.deps.length > 0) {
            depsHtml = '<dt>' + depsIcon + ' Dependencies</dt><dd><div class="deps-list">';
            info.deps.forEach(function(d) {
                var icon, link, versionDisplay;
                var src = d.source;
                if (src.type === 'crates.io') {
                    icon = cratesIoIcon;
                    link = 'https://crates.io/crates/' + encodeURIComponent(d.name) + '/' + encodeURIComponent(d.version);
                    versionDisplay = d.version;
                    depsHtml += '<div><a href="' + link + '" target="_blank" rel="noopener" title="View on crates.io">' + icon + ' <span class="dep-name">' + escapeHtml(d.name) + '</span> <span class="dep-version">' + escapeHtml(versionDisplay) + '</span></a></div>';
                } else if (src.type === 'git') {
                    icon = gitIcon;
                    // Generate proper commit link for GitHub repos
                    var commitShort = src.commit.substring(0, 8);
                    versionDisplay = d.version + ' @ ' + commitShort;
                    if (src.url.indexOf('github.com') !== -1) {
                        // GitHub: link directly to the commit
                        link = src.url.replace(/\.git$/, '') + '/tree/' + src.commit;
                    } else {
                        // Other git hosts: just link to the repo
                        link = src.url;
                    }
                    depsHtml += '<div><a href="' + escapeHtml(link) + '" target="_blank" rel="noopener" title="View commit ' + escapeHtml(src.commit) + '">' + icon + ' <span class="dep-name">' + escapeHtml(d.name) + '</span> <span class="dep-version">' + escapeHtml(versionDisplay) + '</span></a></div>';
                } else {
                    // path dependency
                    icon = pathIcon;
                    versionDisplay = d.version;
                    depsHtml += '<div><span class="dep-local">' + icon + ' <span class="dep-name">' + escapeHtml(d.name) + '</span> <span class="dep-version">' + escapeHtml(versionDisplay) + '</span></span></div>';
                }
            });
            depsHtml += '</div></dd>';
        }

        popup.innerHTML =
            '<button class="close-btn" aria-label="Close">&times;</button>' +
            '<h3>&#x2705; Build Verified</h3>' +
            '<dl>' +
            '<dt>' + rustcIcon + ' Compiler</dt><dd>' + escapeHtml(info.rustc) + '</dd>' +
            '<dt>' + rustcIcon + ' Cargo</dt><dd>' + escapeHtml(info.cargo) + '</dd>' +
            '<dt>' + targetIcon + ' Target</dt><dd>' + escapeHtml(info.target) + '</dd>' +
            '<dt>' + clockIcon + ' Built</dt><dd>' + formatLocalTime(info.timestamp) + (info.cacheHit ? ' (cached)' : '') + '</dd>' +
            depsHtml +
            '</dl>';

        overlay.appendChild(popup);
        document.body.appendChild(overlay);

        function close() {
            overlay.remove();
        }

        overlay.addEventListener('click', function(e) {
            if (e.target === overlay) close();
        });
        popup.querySelector('.close-btn').addEventListener('click', close);
        document.addEventListener('keydown', function handler(e) {
            if (e.key === 'Escape') {
                close();
                document.removeEventListener('keydown', handler);
            }
        });
    };
})();
</script><html lang=en><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><title>facet</title><meta name=description><link href=/main.42400d252302.css rel=stylesheet><link href=/pagefind/pagefind-ui.css rel=stylesheet><link href=/favicon.png rel=icon sizes=32x32 type=image/png><link href=/favicon.0e354c346665.ico rel=icon type=image/x-icon><link href=/favicon.png rel=apple-touch-icon><body><nav class=site-nav><a class=site-nav-brand href=/> <picture><source srcset="/favicon.0oadoc141446.jxl 121w" type=image/jxl><source srcset="/favicon.40c53c3oc1a4.webp 121w" type=image/webp><img onload="this.style.background='none'" style="background:url(data:image/png;base64,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) 50%/cover no-repeat" alt class=site-nav-logo decoding=async height=128 loading=lazy src=/favicon.40c53c3oc1a4.webp width=121></picture> <span>facet</span> </a><div class=site-nav-links><a href=/guide>Guide</a><a href=/reference>Reference</a><a href=/extend>Extend</a><a href=/contribute>Contribute</a></div><div class=site-nav-search id=search></div><a class=site-nav-github href=https://github.com/facet-rs/facet title=GitHub> <svg viewbox="0 0 16 16" fill=currentColor height=24 width=24><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg> </a></nav><div class=container><main class="content home-content"><p><strong>facet</strong> is a reflection library for Rust. One derive macro gives you serialization, pretty-printing, diffing, and more.<pre><code class=language-rust><a-at>#</a-at><a-p>[</a-p><a-at>derive</a-at><a-p>(</a-p><a-cr>Facet</a-cr><a-p>)]</a-p>
<a-k>struct</a-k> <a-t>Config</a-t> <a-p>{</a-p>
    <a-pr>name</a-pr><a-p>:</a-p> <a-t>String</a-t><a-p>,</a-p>
    <a-pr>port</a-pr><a-p>:</a-p> <a-t>u16</a-t><a-p>,</a-p>
    <a-at>#</a-at><a-p>[</a-p><a-at>facet</a-at><a-p>(</a-p><a-at>sensitive</a-at><a-p>)]</a-p>
    <a-pr>api_key</a-pr><a-p>:</a-p> <a-t>String</a-t><a-p>,</a-p>
<a-p>}</a-p>
</code><button class="build-info-btn verified" aria-label="View build info" title="Verified: rustc 1.91.1 (ed61e7d7e 2025-11-07)" onclick="showBuildInfoPopup({&quot;rustc&quot;:&quot;rustc 1.91.1 (ed61e7d7e 2025-11-07)&quot;,&quot;cargo&quot;:&quot;cargo 1.91.1 (ea2d97820 2025-10-10)&quot;,&quot;target&quot;:&quot;x86_64-unknown-linux-gnu&quot;,&quot;timestamp&quot;:&quot;2025-12-21T13:44:49Z&quot;,&quot;cacheHit&quot;:false,&quot;platform&quot;:&quot;linux&quot;,&quot;arch&quot;:&quot;x86_64&quot;,&quot;deps&quot;:[{&quot;name&quot;:&quot;android_system_properties&quot;,&quot;version&quot;:&quot;0.1.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;autocfg&quot;,&quot;version&quot;:&quot;1.5.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;bitflags&quot;,&quot;version&quot;:&quot;2.10.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;bumpalo&quot;,&quot;version&quot;:&quot;3.19.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;bytes&quot;,&quot;version&quot;:&quot;1.11.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;camino&quot;,&quot;version&quot;:&quot;1.2.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;cc&quot;,&quot;version&quot;:&quot;1.2.50&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;cfg-if&quot;,&quot;version&quot;:&quot;1.0.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;chrono&quot;,&quot;version&quot;:&quot;0.4.42&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;core-foundation-sys&quot;,&quot;version&quot;:&quot;0.8.7&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;deranged&quot;,&quot;version&quot;:&quot;0.5.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;displaydoc&quot;,&quot;version&quot;:&quot;0.2.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;dodeca-code-sample&quot;,&quot;version&quot;:&quot;0.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;equivalent&quot;,&quot;version&quot;:&quot;1.0.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;errno&quot;,&quot;version&quot;:&quot;0.3.14&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;facet&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-core&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-json&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-kdl&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-macro-parse&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-macro-types&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-macros&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-macros-impl&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-reflect&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-singularize&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;facet-solver&quot;,&quot;version&quot;:&quot;0.33.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;git&quot;,&quot;url&quot;:&quot;https://github.com/facet-rs/facet&quot;,&quot;commit&quot;:&quot;0c27338f0b7bbbb5fdf776c0c881b43f6034d409&quot;}},{&quot;name&quot;:&quot;find-msvc-tools&quot;,&quot;version&quot;:&quot;0.1.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;form_urlencoded&quot;,&quot;version&quot;:&quot;1.2.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;getrandom&quot;,&quot;version&quot;:&quot;0.3.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;hashbrown&quot;,&quot;version&quot;:&quot;0.16.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;iana-time-zone&quot;,&quot;version&quot;:&quot;0.1.64&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;iana-time-zone-haiku&quot;,&quot;version&quot;:&quot;0.1.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_collections&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_locale_core&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_normalizer&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_normalizer_data&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_properties&quot;,&quot;version&quot;:&quot;2.1.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_properties_data&quot;,&quot;version&quot;:&quot;2.1.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;icu_provider&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;idna&quot;,&quot;version&quot;:&quot;1.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;idna_adapter&quot;,&quot;version&quot;:&quot;1.2.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;impls&quot;,&quot;version&quot;:&quot;1.0.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;indexmap&quot;,&quot;version&quot;:&quot;2.12.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;is_ci&quot;,&quot;version&quot;:&quot;1.2.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;itoa&quot;,&quot;version&quot;:&quot;1.0.16&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;jiff&quot;,&quot;version&quot;:&quot;0.2.16&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;jiff-static&quot;,&quot;version&quot;:&quot;0.2.16&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;jiff-tzdb&quot;,&quot;version&quot;:&quot;0.1.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;jiff-tzdb-platform&quot;,&quot;version&quot;:&quot;0.1.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;js-sys&quot;,&quot;version&quot;:&quot;0.3.83&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;kdl&quot;,&quot;version&quot;:&quot;6.5.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;lexical-parse-float&quot;,&quot;version&quot;:&quot;1.0.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;lexical-parse-integer&quot;,&quot;version&quot;:&quot;1.0.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;lexical-util&quot;,&quot;version&quot;:&quot;1.0.7&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;libc&quot;,&quot;version&quot;:&quot;0.2.178&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;libm&quot;,&quot;version&quot;:&quot;0.2.15&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;linux-raw-sys&quot;,&quot;version&quot;:&quot;0.11.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;litemap&quot;,&quot;version&quot;:&quot;0.8.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;log&quot;,&quot;version&quot;:&quot;0.4.29&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;memchr&quot;,&quot;version&quot;:&quot;2.7.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;miette&quot;,&quot;version&quot;:&quot;7.6.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;miette-derive&quot;,&quot;version&quot;:&quot;7.6.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;mutants&quot;,&quot;version&quot;:&quot;0.0.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num&quot;,&quot;version&quot;:&quot;0.4.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-bigint&quot;,&quot;version&quot;:&quot;0.4.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-complex&quot;,&quot;version&quot;:&quot;0.4.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-conv&quot;,&quot;version&quot;:&quot;0.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-integer&quot;,&quot;version&quot;:&quot;0.1.46&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-iter&quot;,&quot;version&quot;:&quot;0.1.45&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-rational&quot;,&quot;version&quot;:&quot;0.4.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;num-traits&quot;,&quot;version&quot;:&quot;0.2.19&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;once_cell&quot;,&quot;version&quot;:&quot;1.21.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ordered-float&quot;,&quot;version&quot;:&quot;5.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;owo-colors&quot;,&quot;version&quot;:&quot;4.2.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;percent-encoding&quot;,&quot;version&quot;:&quot;2.3.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;portable-atomic&quot;,&quot;version&quot;:&quot;1.12.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;portable-atomic-util&quot;,&quot;version&quot;:&quot;0.2.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;potential_utf&quot;,&quot;version&quot;:&quot;0.1.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;powerfmt&quot;,&quot;version&quot;:&quot;0.2.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ppv-lite86&quot;,&quot;version&quot;:&quot;0.2.21&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;proc-macro2&quot;,&quot;version&quot;:&quot;1.0.103&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;proptest&quot;,&quot;version&quot;:&quot;1.9.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;quote&quot;,&quot;version&quot;:&quot;1.0.42&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;r-efi&quot;,&quot;version&quot;:&quot;5.3.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand&quot;,&quot;version&quot;:&quot;0.8.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand&quot;,&quot;version&quot;:&quot;0.9.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand_chacha&quot;,&quot;version&quot;:&quot;0.9.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand_core&quot;,&quot;version&quot;:&quot;0.6.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand_core&quot;,&quot;version&quot;:&quot;0.9.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rand_xorshift&quot;,&quot;version&quot;:&quot;0.4.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ruint&quot;,&quot;version&quot;:&quot;1.17.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ruint-macro&quot;,&quot;version&quot;:&quot;1.2.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rustc-hash&quot;,&quot;version&quot;:&quot;2.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rustix&quot;,&quot;version&quot;:&quot;1.1.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;rustversion&quot;,&quot;version&quot;:&quot;1.0.22&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ryu&quot;,&quot;version&quot;:&quot;1.0.21&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;serde&quot;,&quot;version&quot;:&quot;1.0.228&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;serde_core&quot;,&quot;version&quot;:&quot;1.0.228&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;serde_derive&quot;,&quot;version&quot;:&quot;1.0.228&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;shlex&quot;,&quot;version&quot;:&quot;1.3.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;smallvec&quot;,&quot;version&quot;:&quot;1.15.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;stable_deref_trait&quot;,&quot;version&quot;:&quot;1.2.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;static_assertions&quot;,&quot;version&quot;:&quot;1.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;strsim&quot;,&quot;version&quot;:&quot;0.11.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;supports-color&quot;,&quot;version&quot;:&quot;3.0.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;supports-hyperlinks&quot;,&quot;version&quot;:&quot;3.2.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;supports-unicode&quot;,&quot;version&quot;:&quot;3.0.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;syn&quot;,&quot;version&quot;:&quot;2.0.111&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;synstructure&quot;,&quot;version&quot;:&quot;0.13.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;terminal_size&quot;,&quot;version&quot;:&quot;0.4.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;textwrap&quot;,&quot;version&quot;:&quot;0.16.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;time&quot;,&quot;version&quot;:&quot;0.3.44&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;time-core&quot;,&quot;version&quot;:&quot;0.1.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;time-macros&quot;,&quot;version&quot;:&quot;0.2.24&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;tinystr&quot;,&quot;version&quot;:&quot;0.8.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;ulid&quot;,&quot;version&quot;:&quot;1.2.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unarray&quot;,&quot;version&quot;:&quot;0.1.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unicode-ident&quot;,&quot;version&quot;:&quot;1.0.22&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unicode-linebreak&quot;,&quot;version&quot;:&quot;0.1.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unicode-width&quot;,&quot;version&quot;:&quot;0.1.14&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unicode-width&quot;,&quot;version&quot;:&quot;0.2.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;unsynn&quot;,&quot;version&quot;:&quot;0.3.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;url&quot;,&quot;version&quot;:&quot;2.5.7&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;utf8_iter&quot;,&quot;version&quot;:&quot;1.0.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;uuid&quot;,&quot;version&quot;:&quot;1.19.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;valuable&quot;,&quot;version&quot;:&quot;0.1.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wasip2&quot;,&quot;version&quot;:&quot;1.0.1+wasi-0.2.4&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wasm-bindgen&quot;,&quot;version&quot;:&quot;0.2.106&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wasm-bindgen-macro&quot;,&quot;version&quot;:&quot;0.2.106&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wasm-bindgen-macro-support&quot;,&quot;version&quot;:&quot;0.2.106&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wasm-bindgen-shared&quot;,&quot;version&quot;:&quot;0.2.106&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;web-time&quot;,&quot;version&quot;:&quot;1.1.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-core&quot;,&quot;version&quot;:&quot;0.62.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-implement&quot;,&quot;version&quot;:&quot;0.60.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-interface&quot;,&quot;version&quot;:&quot;0.59.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-link&quot;,&quot;version&quot;:&quot;0.2.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-result&quot;,&quot;version&quot;:&quot;0.4.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-strings&quot;,&quot;version&quot;:&quot;0.5.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-sys&quot;,&quot;version&quot;:&quot;0.60.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-sys&quot;,&quot;version&quot;:&quot;0.61.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows-targets&quot;,&quot;version&quot;:&quot;0.53.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_aarch64_gnullvm&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_aarch64_msvc&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_i686_gnu&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_i686_gnullvm&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_i686_msvc&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_x86_64_gnu&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_x86_64_gnullvm&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;windows_x86_64_msvc&quot;,&quot;version&quot;:&quot;0.53.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;winnow&quot;,&quot;version&quot;:&quot;0.6.24&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;wit-bindgen&quot;,&quot;version&quot;:&quot;0.46.0&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;writeable&quot;,&quot;version&quot;:&quot;0.6.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;yoke&quot;,&quot;version&quot;:&quot;0.8.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;yoke-derive&quot;,&quot;version&quot;:&quot;0.8.1&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerocopy&quot;,&quot;version&quot;:&quot;0.8.31&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerocopy-derive&quot;,&quot;version&quot;:&quot;0.8.31&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerofrom&quot;,&quot;version&quot;:&quot;0.1.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerofrom-derive&quot;,&quot;version&quot;:&quot;0.1.6&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zeroize&quot;,&quot;version&quot;:&quot;1.8.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerotrie&quot;,&quot;version&quot;:&quot;0.2.3&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerovec&quot;,&quot;version&quot;:&quot;0.11.5&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}},{&quot;name&quot;:&quot;zerovec-derive&quot;,&quot;version&quot;:&quot;0.11.2&quot;,&quot;source&quot;:{&quot;type&quot;:&quot;crates.io&quot;}}]})">&#9432;</button></pre><p>From this single derive, you get:<ul><li><strong>Serialization</strong> — JSON, YAML, TOML, KDL, MessagePack<li><strong>Pretty-printing</strong> — Colored output with sensitive field redaction<li><strong>Diffing</strong> — Structural comparison between values<li><strong>Introspection</strong> — Query type information at runtime</ul><h2 id=choose-your-path>Choose your path</h2><div class=guide-cards><a class=guide-card href=/guide> <div class=guide-card__icon><img alt loading=lazy src=/icons/learn.d4a565ao5454.svg></div> <h3 id=guide>Guide</h3> <p class=tagline>Use facet in your app</p> <p class=description>Install a format crate, derive <code>Facet</code>, configure attributes, and ship with great diagnostics.</p> </a><a class=guide-card href=/reference> <div class=guide-card__icon><img alt loading=lazy src=/icons/reference.02a26ced246d.svg></div> <h3 id=reference>Reference</h3> <p class=tagline>Look it up fast</p> <p class=description>Attributes catalog, format matrix, extension namespaces, and FAQs in one place.</p> </a><a class=guide-card href=/extend> <div class=guide-card__icon><img alt loading=lazy src=/icons/extend.aco16a614aoa.svg></div> <h3 id=extend>Extend</h3> <p class=tagline>Build on reflection</p> <p class=description>Create extension attributes, read data with <code>Peek</code>, build values with <code>Partial</code>, and architect new format crates.</p> </a><a class=guide-card href=/contribute> <div class=guide-card__icon><img alt loading=lazy src=/icons/contribute.aoo1o0o366d3.svg></div> <h3 id=contribute>Contribute</h3> <p class=tagline>Work on facet itself</p> <p class=description>Architecture, derive internals, vtables, unsafe invariants, and the contributor workflow.</p> </a></div><h2 id=quick-links>Quick links</h2><ul><li><a href=/reference/format-crate-matrix>Format Support Matrix</a> — Feature comparison across format crates<li><a href=/extend/extension-attributes>Extension Attributes</a> — Format-specific attribute namespaces<li><a href=https://github.com/facet-rs/facet>GitHub</a> — Source code and issues<li><a href=https://docs.rs/facet>docs.rs</a> — API documentation</ul></main></div><footer class=site-footer><div class=footer-content><div class=footer-section><h4>Documentation</h4><ul><li><a href=/guide>Guide</a><li><a href=/reference>Reference</a><li><a href=/extend>Extend</a><li><a href=/contribute>Contribute</a></ul></div><div class=footer-section><h4>Community</h4><ul><li><a href=https://github.com/facet-rs/facet>GitHub</a><li><a href=https://discord.gg/JhD7CwCJ8F>Discord</a><li><a href=https://crates.io/crates/facet>crates.io</a><li><a href=https://docs.rs/facet>docs.rs</a></ul></div><div class="footer-section footer-meta"><p>Licensed under MIT/Apache-2.0</div></div></footer><script src=/pagefind/pagefind-ui.js></script><script>document.addEventListener(`DOMContentLoaded`,function(){
// Build TOC from showcase scenario headers
let toc=document.querySelector(`.toc ul`),showcase=document.querySelector(`.showcase`);toc&&showcase&&toc.children.length===0&&showcase.querySelectorAll(`h3[id]`).forEach(function(h3){let li=document.createElement(`li`),a=document.createElement(`a`);a.href=`#`+h3.id,a.textContent=h3.textContent.replace(/^§/,``),li.appendChild(a),toc.appendChild(li)});let searchShortcut=navigator.platform.toUpperCase().indexOf(`MAC`)>=0?`⌘K`:`Ctrl+K`;new PagefindUI({element:`#search`,showSubResults:!0,showImages:!1,translations:{placeholder:`Search ${searchShortcut}`}});
// Keyboard shortcuts for search
function isInputElement(el){let tagName=el.tagName.toLowerCase();return tagName===`input`||tagName===`textarea`||el.isContentEditable}document.addEventListener(`keydown`,function(e){let searchInput=document.querySelector(`#search input`);if(searchInput){
// Cmd+K or Ctrl+K
if((e.metaKey||e.ctrlKey)&&e.key===`k`){e.preventDefault(),searchInput.focus(),searchInput.select();return}
// Slash when not in an input
e.key===`/`&&!isInputElement(e.target)&&(e.preventDefault(),searchInput.focus(),searchInput.select())}})});</script>