Deploying to gh-pages from @ GreptimeTeam/greptimedb@af396e60a3 🚀

This commit is contained in:
github-merge-queue[bot]
2026-10-15 05:28:07 +00:00
commit e5ae072cb2
25952 changed files with 3013221 additions and 0 deletions
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `MITO_ENGINE_NAME` constant in crate `mito2`."><title>MITO_ENGINE_NAME in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc constant"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">MITO_ENGINE_NAME</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Constant <span class="constant">MITO_<wbr>ENGINE_<wbr>NAME</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#171">Source</a> </span></div><pre class="rust item-decl"><code>pub const MITO_ENGINE_NAME: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a> = &quot;mito&quot;;</code></pre></section></div></main></body></html>
@@ -0,0 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Check whether the region edit is valid."><title>is_valid_region_edit in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">is_valid_region_edit</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Function <span class="fn">is_<wbr>valid_<wbr>region_<wbr>edit</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#724-738">Source</a> </span></div><pre class="rust item-decl"><code>fn is_valid_region_edit(edit: &amp;<a class="struct" href="../manifest/action/struct.RegionEdit.html" title="struct mito2::manifest::action::RegionEdit">RegionEdit</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Check whether the region edit is valid.</p>
<p>Only adding or removing files to region is considered valid now.</p>
</div></details></section></div></main></body></html>
+3
View File
@@ -0,0 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `map_batch_responses` fn in crate `mito2`."><title>map_batch_responses in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">map_batch_responses</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Function <span class="fn">map_<wbr>batch_<wbr>responses</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#1369-1379">Source</a> </span></div><pre class="rust item-decl"><code>fn map_batch_responses(
responses: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(RegionId, <a class="type" href="../error/type.Result.html" title="type mito2::error::Result">Result</a>&lt;AffectedRows&gt;)&gt;,
) -&gt; BatchResponses</code></pre></section></div></main></body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Returns requests(TopicGroupedRegionOpenRequests) grouped by topic and remaining requests."><title>prepare_batch_open_requests in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">prepare_batch_open_requests</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Function <span class="fn">prepare_<wbr>batch_<wbr>open_<wbr>requests</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#762-785">Source</a> </span></div><pre class="rust item-decl"><code>fn prepare_batch_open_requests(
requests: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(RegionId, RegionOpenRequest)&gt;,
) -&gt; <a class="type" href="../error/type.Result.html" title="type mito2::error::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.98.1/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(RegionId, RegionOpenRequest)&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(RegionId, RegionOpenRequest)&gt;)&gt;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns requests(<a href="type.TopicGroupedRegionOpenRequests.html" title="type mito2::engine::TopicGroupedRegionOpenRequests">TopicGroupedRegionOpenRequests</a>) grouped by topic and remaining requests.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `sequence_range_unsupported_reason` fn in crate `mito2`."><title>sequence_range_unsupported_reason in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">sequence_range_unsupported_reason</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Function <span class="fn">sequence_<wbr>range_<wbr>unsupported_<wbr>reason</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#1356-1367">Source</a> </span></div><pre class="rust item-decl"><code>fn sequence_range_unsupported_reason(
version: &amp;<a class="struct" href="../region/version/struct.Version.html" title="struct mito2::region::version::Version">Version</a>,
extension_provider_blocks_exact: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre></section></div></main></body></html>
@@ -0,0 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `validate_sequence_fences` fn in crate `mito2`."><title>validate_sequence_fences in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">validate_sequence_fences</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Function <span class="fn">validate_<wbr>sequence_<wbr>fences</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#1265-1354">Source</a> </span></div><pre class="rust item-decl"><code>fn validate_sequence_fences(
request: &amp;ScanRequest,
version: &amp;<a class="struct" href="../region/version/struct.Version.html" title="struct mito2::region::version::Version">Version</a>,
region_id: RegionId,
exact_sequence_range_available: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
extension_provider_blocks_exact: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
) -&gt; <a class="type" href="../error/type.Result.html" title="type mito2::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
+2
View File
@@ -0,0 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Mito region engine."><title>mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module engine</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module engine</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#constants" title="Constants">Constants</a></li><li><a href="#functions" title="Functions">Functions</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate mito2</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a></div><h1>Module <span>engine</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#15-1780">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Mito region engine.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="puffin_index/index.html" title="mod mito2::engine::puffin_index">puffin_<wbr>index</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="mod" href="region_hook/index.html" title="mod mito2::engine::region_hook">region_<wbr>hook</a></dt><dd>Region hook extension point for observing SST writes and manifest mutations.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.EngineInner.html" title="struct mito2::engine::EngineInner">Engine<wbr>Inner</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Inner struct of <a href="struct.MitoEngine.html" title="struct mito2::engine::MitoEngine">MitoEngine</a>.</dd><dt><a class="struct" href="struct.MitoEngine.html" title="struct mito2::engine::MitoEngine">Mito<wbr>Engine</a></dt><dd>Region engine implementation for timeseries data.</dd><dt><a class="struct" href="struct.MitoEngineBuilder.html" title="struct mito2::engine::MitoEngineBuilder">Mito<wbr>Engine<wbr>Builder</a></dt></dl><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.MITO_ENGINE_NAME.html" title="constant mito2::engine::MITO_ENGINE_NAME">MITO_<wbr>ENGINE_<wbr>NAME</a></dt></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.is_valid_region_edit.html" title="fn mito2::engine::is_valid_region_edit">is_<wbr>valid_<wbr>region_<wbr>edit</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Check whether the region edit is valid.</dd><dt><a class="fn" href="fn.map_batch_responses.html" title="fn mito2::engine::map_batch_responses">map_<wbr>batch_<wbr>responses</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.new_scan_memory_pool.html" title="fn mito2::engine::new_scan_memory_pool">new_<wbr>scan_<wbr>memory_<wbr>pool</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.prepare_batch_open_requests.html" title="fn mito2::engine::prepare_batch_open_requests">prepare_<wbr>batch_<wbr>open_<wbr>requests</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Returns requests(<a href="type.TopicGroupedRegionOpenRequests.html" title="type mito2::engine::TopicGroupedRegionOpenRequests">TopicGroupedRegionOpenRequests</a>) grouped by topic and remaining requests.</dd><dt><a class="fn" href="fn.sequence_range_unsupported_reason.html" title="fn mito2::engine::sequence_range_unsupported_reason">sequence_<wbr>range_<wbr>unsupported_<wbr>reason</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.validate_sequence_fences.html" title="fn mito2::engine::validate_sequence_fences">validate_<wbr>sequence_<wbr>fences</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.TopicGroupedRegionOpenRequests.html" title="type mito2::engine::TopicGroupedRegionOpenRequests">Topic<wbr>Grouped<wbr>Region<wbr>Open<wbr>Requests</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt></dl></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TARGET_TYPE_COLUMN` constant in crate `mito2`."><title>TARGET_TYPE_COLUMN in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc constant"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">TARGET_TYPE_COLUMN</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Constant <span class="constant">TARGET_<wbr>TYPE_<wbr>COLUMN</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#51">Source</a> </span></div><pre class="rust item-decl"><code>const TARGET_TYPE_COLUMN: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a> = &quot;column&quot;;</code></pre></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TARGET_TYPE_UNKNOWN` constant in crate `mito2`."><title>TARGET_TYPE_UNKNOWN in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc constant"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">TARGET_TYPE_UNKNOWN</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Constant <span class="constant">TARGET_<wbr>TYPE_<wbr>UNKNOWN</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#49">Source</a> </span></div><pre class="rust item-decl"><code>const TARGET_TYPE_UNKNOWN: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a> = &quot;unknown&quot;;</code></pre></section></div></main></body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `bloom_meta_value` fn in crate `mito2`."><title>bloom_meta_value in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">bloom_meta_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">bloom_<wbr>meta_<wbr>value</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#387-394">Source</a> </span></div><pre class="rust item-decl"><code>fn bloom_meta_value(meta: &amp;BloomFilterMeta) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></code></pre></section></div></main></body></html>
@@ -0,0 +1,9 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `build_index_entry` fn in crate `mito2`."><title>build_index_entry in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_index_entry</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">build_<wbr>index_<wbr>entry</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#490-517">Source</a> </span></div><pre class="rust item-decl"><code>fn build_index_entry(
context: &amp;<a class="struct" href="struct.IndexEntryContext.html" title="struct mito2::engine::puffin_index::IndexEntryContext">IndexEntryContext</a>&lt;'_&gt;,
index_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
target_type: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
target_key: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
target_json: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
blob_size: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.u64.html">u64</a>,
meta_json: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,
) -&gt; PuffinIndexMetaEntry</code></pre></section></div></main></body></html>
@@ -0,0 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `build_inverted_entries` fn in crate `mito2`."><title>build_inverted_entries in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_inverted_entries</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">build_<wbr>inverted_<wbr>entries</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#268-289">Source</a> </span></div><pre class="rust item-decl"><code>fn build_inverted_entries(
context: &amp;<a class="struct" href="struct.IndexEntryContext.html" title="struct mito2::engine::puffin_index::IndexEntryContext">IndexEntryContext</a>&lt;'_&gt;,
metas: &amp;InvertedIndexMetas,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;PuffinIndexMetaEntry&gt;</code></pre></section></div></main></body></html>
@@ -0,0 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `build_meta_json` fn in crate `mito2`."><title>build_meta_json in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_meta_json</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">build_<wbr>meta_<wbr>json</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#425-445">Source</a> </span></div><pre class="rust item-decl"><code>fn build_meta_json(
bloom: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a>&gt;,
fulltext: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a>&gt;,
inverted: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</code></pre></section></div></main></body></html>
@@ -0,0 +1,8 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Collect index metadata entries present in the SST puffin file."><title>collect_index_entries_from_puffin in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">collect_index_entries_from_puffin</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">collect_<wbr>index_<wbr>entries_<wbr>from_<wbr>puffin</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#67-187">Source</a> </span></div><pre class="rust item-decl"><code>pub(crate) async fn collect_index_entries_from_puffin(
manager: FsPuffinManager&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;BoundedStager&lt;<a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>&gt;&gt;, <a class="struct" href="../../sst/index/puffin_manager/struct.ObjectStorePuffinFileAccessor.html" title="struct mito2::sst::index::puffin_manager::ObjectStorePuffinFileAccessor">ObjectStorePuffinFileAccessor</a>&gt;,
region_index_id: <a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>,
context: <a class="struct" href="struct.IndexEntryContext.html" title="struct mito2::engine::puffin_index::IndexEntryContext">IndexEntryContext</a>&lt;'_&gt;,
bloom_filter_cache: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../cache/index/struct.IndexCache.html" title="struct mito2::cache::index::IndexCache">IndexCache</a>&lt;(FileId, IndexVersion, ColumnId, <a class="enum" href="../../cache/index/bloom_filter_index/enum.Tag.html" title="enum mito2::cache::index::bloom_filter_index::Tag">Tag</a>), BloomFilterMeta&gt;&gt;&gt;,
inverted_index_cache: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../cache/index/struct.IndexCache.html" title="struct mito2::cache::index::IndexCache">IndexCache</a>&lt;(FileId, IndexVersion), InvertedIndexMetas&gt;&gt;&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;PuffinIndexMetaEntry&gt;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Collect index metadata entries present in the SST puffin file.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1,6 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `collect_inverted_entries` fn in crate `mito2`."><title>collect_inverted_entries in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">collect_inverted_entries</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">collect_<wbr>inverted_<wbr>entries</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#189-266">Source</a> </span></div><pre class="rust item-decl"><code>async fn collect_inverted_entries(
reader: &amp;&lt;FsPuffinManager&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;BoundedStager&lt;<a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>&gt;&gt;, <a class="struct" href="../../sst/index/puffin_manager/struct.ObjectStorePuffinFileAccessor.html" title="struct mito2::sst::index::puffin_manager::ObjectStorePuffinFileAccessor">ObjectStorePuffinFileAccessor</a>&gt; as PuffinManager&gt;::Reader,
region_index_id: <a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>,
cache: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../cache/index/struct.IndexCache.html" title="struct mito2::cache::index::IndexCache">IndexCache</a>&lt;(FileId, IndexVersion), InvertedIndexMetas&gt;&gt;&gt;,
context: &amp;<a class="struct" href="struct.IndexEntryContext.html" title="struct mito2::engine::puffin_index::IndexEntryContext">IndexEntryContext</a>&lt;'_&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;PuffinIndexMetaEntry&gt;</code></pre></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `decode_column_id` fn in crate `mito2`."><title>decode_column_id in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">decode_column_id</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">decode_<wbr>column_<wbr>id</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#380-385">Source</a> </span></div><pre class="rust item-decl"><code>fn decode_column_id(target_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;ColumnId&gt;</code></pre></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `decode_target_info` fn in crate `mito2`."><title>decode_target_info in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">decode_target_info</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">decode_<wbr>target_<wbr>info</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#367-378">Source</a> </span></div><pre class="rust item-decl"><code>fn decode_target_info(target_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -&gt; (<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</code></pre></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `fulltext_meta_value` fn in crate `mito2`."><title>fulltext_meta_value in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">fulltext_meta_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">fulltext_<wbr>meta_<wbr>value</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#396-406">Source</a> </span></div><pre class="rust item-decl"><code>fn fulltext_meta_value(blob: &amp;BlobMetadata, bloom_version: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></code></pre></section></div></main></body></html>
@@ -0,0 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `inverted_meta_value` fn in crate `mito2`."><title>inverted_meta_value in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">inverted_meta_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">inverted_<wbr>meta_<wbr>value</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#408-423">Source</a> </span></div><pre class="rust item-decl"><code>fn inverted_meta_value(
meta: &amp;InvertedIndexMeta,
metas: &amp;InvertedIndexMetas,
) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.149/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></code></pre></section></div></main></body></html>
@@ -0,0 +1,9 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `try_read_bloom_meta` fn in crate `mito2`."><title>try_read_bloom_meta in mito2::engine::puffin_index - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">try_read_bloom_meta</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>puffin_<wbr>index</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">puffin_index</a></div><h1>Function <span class="fn">try_<wbr>read_<wbr>bloom_<wbr>meta</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/puffin_index.rs.html#291-365">Source</a> </span></div><pre class="rust item-decl"><code>async fn try_read_bloom_meta(
reader: &amp;&lt;FsPuffinManager&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;BoundedStager&lt;<a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>&gt;&gt;, <a class="struct" href="../../sst/index/puffin_manager/struct.ObjectStorePuffinFileAccessor.html" title="struct mito2::sst::index::puffin_manager::ObjectStorePuffinFileAccessor">ObjectStorePuffinFileAccessor</a>&gt; as PuffinManager&gt;::Reader,
region_index_id: <a class="struct" href="../../sst/file/struct.RegionIndexId.html" title="struct mito2::sst::file::RegionIndexId">RegionIndexId</a>,
blob_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
target_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
cache: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../cache/index/struct.IndexCache.html" title="struct mito2::cache::index::IndexCache">IndexCache</a>&lt;(FileId, IndexVersion, ColumnId, <a class="enum" href="../../cache/index/bloom_filter_index/enum.Tag.html" title="enum mito2::cache::index::bloom_filter_index::Tag">Tag</a>), BloomFilterMeta&gt;&gt;&gt;,
tag: <a class="enum" href="../../cache/index/bloom_filter_index/enum.Tag.html" title="enum mito2::cache::index::bloom_filter_index::Tag">Tag</a>,
context: &amp;<a class="struct" href="struct.IndexEntryContext.html" title="struct mito2::engine::puffin_index::IndexEntryContext">IndexEntryContext</a>&lt;'_&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;BloomFilterMeta&gt;&gt;</code></pre></section></div></main></body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"constant":["TARGET_TYPE_COLUMN","TARGET_TYPE_UNKNOWN"],"enum":["BlobIndexTypeTargetKey"],"fn":["bloom_meta_value","build_index_entry","build_inverted_entries","build_meta_json","collect_index_entries_from_puffin","collect_inverted_entries","decode_column_id","decode_target_info","fulltext_meta_value","inverted_meta_value","try_read_bloom_meta"],"struct":["IndexEntryContext"]};
File diff suppressed because one or more lines are too long
+121
View File
@@ -0,0 +1,121 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Region hook extension point for observing SST writes and manifest mutations."><title>mito2::engine::region_hook - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module region_hook</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module region_<wbr>hook</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#design" title="Design">Design</a></li><li><a href="#coverage" title="Coverage">Coverage</a></li><li><a href="#region-lifecycle" title="Region lifecycle">Region lifecycle</a></li><li><a href="#invocation-points" title="Invocation points">Invocation points</a></li><li><a href="#future-work" title="Future work">Future work</a></li></ul><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a></div><h1>Module <span>region_<wbr>hook</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/region_hook.rs.html#15-474">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Region hook extension point for observing SST writes and manifest mutations.</p>
<h3 id="design"><a class="doc-anchor" href="#design">§</a>Design</h3>
<p>The <a href="trait.RegionHook.html" title="trait mito2::engine::region_hook::RegionHook"><code>RegionHook</code></a> trait observes region activity through two categories of
callbacks — manifest/file observation and region lifecycle:</p>
<ul>
<li>
<p><a href="trait.RegionHook.html#method.on_sst_files_written" title="method mito2::engine::region_hook::RegionHook::on_sst_files_written"><code>on_sst_files_written</code></a>: Fires when mito2 physically writes SST <strong>data files</strong>.
Provides per-file <a href="../../sst/parquet/struct.SstInfo.html" title="struct mito2::sst::parquet::SstInfo"><code>SstInfo</code></a> + <a href="../../sst/file/struct.FileMeta.html" title="struct mito2::sst::file::FileMeta"><code>FileMeta</code></a>; metadata richness varies by path
(see <a href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo"><code>SstFileInfo</code></a> and the coverage footnote).</p>
</li>
<li>
<p><a href="trait.RegionHook.html#method.on_manifest_updated" title="method mito2::engine::region_hook::RegionHook::on_manifest_updated"><code>on_manifest_updated</code></a>: Fires after a manifest write is committed to the <strong>live</strong>
(normal) manifest directory. Writes to the staging directory (enter staging,
operations during staging, the intermediate apply-staging edit) are suppressed —
their effects are accumulated and delivered in a single notification when the
staged actions are promoted to the live manifest. Receives the full
<a href="../../manifest/action/struct.RegionMetaActionList.html" title="struct mito2::manifest::action::RegionMetaActionList"><code>RegionMetaActionList</code></a> so consumers can inspect what changed (file additions/
removals, schema changes, truncation, partition expression changes, etc.).</p>
</li>
<li>
<p><a href="trait.RegionHook.html#method.on_region_opened" title="method mito2::engine::region_hook::RegionHook::on_region_opened"><code>on_region_opened</code></a> / <a href="trait.RegionHook.html#method.on_region_closed" title="method mito2::engine::region_hook::RegionHook::on_region_closed"><code>on_region_closed</code></a> / <a href="trait.RegionHook.html#method.on_region_dropped" title="method mito2::engine::region_hook::RegionHook::on_region_dropped"><code>on_region_dropped</code></a> / <a href="trait.RegionHook.html#method.on_region_files_removed" title="method mito2::engine::region_hook::RegionHook::on_region_files_removed"><code>on_region_files_removed</code></a>:
Region <strong>lifecycle</strong> callbacks for open, close, logical drop, and physical file removal.
See <a href="#region-lifecycle">Region lifecycle</a> below.</p>
</li>
</ul>
<p>Hook implementations are registered via the <a href="common_base::Plugins"><code>Plugins</code></a> system:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code>plugins.insert(Arc::new(MyHook) <span class="kw">as </span>RegionHookRef);</code></pre></div><h3 id="coverage"><a class="doc-anchor" href="#coverage">§</a>Coverage</h3>
<p>Only manifest writes to the <strong>normal</strong> (live) manifest directory trigger
<code>on_manifest_updated</code>. Writes to the staging manifest directory (operations
that happen while the region is in staging mode) are intentionally suppressed:
their effects are accumulated and delivered in a single notification when
the staged actions are promoted to the live manifest via <code>exit_staging_on_success</code>.</p>
<div><table><thead><tr><th>Scenario</th><th style="text-align: center"><code>on_sst_files_written</code></th><th style="text-align: center"><code>on_manifest_updated</code></th></tr></thead><tbody>
<tr><td>Flush (memtable → SST)</td><td style="text-align: center">✅ Yes</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Local compaction</td><td style="text-align: center">✅ Yes</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Remote compaction</td><td style="text-align: center">✅ (compactor node) ¹</td><td style="text-align: center">✅ (compactor node) ¹</td></tr>
<tr><td>RegionEdit / bulk ingestion</td><td style="text-align: center">❌ (files pre-written)</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Copy region</td><td style="text-align: center">❌ (object-store copy)</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Apply staging (promote)</td><td style="text-align: center">❌ (delegates to edit)</td><td style="text-align: center">✅ Yes ²</td></tr>
<tr><td>Alter (schema change)</td><td style="text-align: center">❌ (no SST files)</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Truncate</td><td style="text-align: center">❌ (removes files)</td><td style="text-align: center">✅ Yes</td></tr>
<tr><td>Enter staging</td><td style="text-align: center">❌ (no SST files)</td><td style="text-align: center">❌ (staging dir)</td></tr>
<tr><td>Operations during staging</td><td style="text-align: center">N/A</td><td style="text-align: center">❌ (staging dir)</td></tr>
<tr><td>Async index build</td><td style="text-align: center">❌ (index files only)</td><td style="text-align: center">✅ Yes</td></tr>
</tbody></table>
</div>
<p>¹ Remote compaction runs on a dedicated compactor node via <code>open_compaction_region()</code>;
pass plugins via <code>OpenCompactionRegionRequest</code> to enable hooks there. <code>sst_infos</code> is
<code>#[serde(skip)]</code> over the wire, so each <a href="../../sst/parquet/struct.SstInfo.html" title="struct mito2::sst::parquet::SstInfo"><code>SstInfo</code></a> is rebuilt from <a href="../../sst/file/struct.FileMeta.html" title="struct mito2::sst::file::FileMeta"><code>FileMeta</code></a> with
empty footer/index — see <a href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo"><code>SstFileInfo</code></a> for field-level detail.
² Apply staging fires <code>on_manifest_updated</code> once when <code>exit_staging_on_success</code> promotes
all staged manifest actions (including the SST file additions) into the live manifest.
The intermediate staging <code>RegionEdit</code> is written to the staging directory and does not
fire the hook — its file list is included in the promote notification.</p>
<p>The following paths do <strong>not</strong> trigger any hook:</p>
<ul>
<li>Follower region sync / catchup (manifest read-only; followers don’t author changes)</li>
<li>GC / checkpoint / remap (internal bookkeeping, not logical state changes)</li>
</ul>
<p>An explicit region <strong>drop</strong> does fire lifecycle hooks — see
<a href="#region-lifecycle">Region lifecycle</a>.</p>
<h3 id="region-lifecycle"><a class="doc-anchor" href="#region-lifecycle">§</a>Region lifecycle</h3>
<p>Beyond manifest/SST observation, the hook observes the high-level lifecycle of an
active region:</p>
<div><table><thead><tr><th>Event</th><th>Method</th><th>When</th></tr></thead><tbody>
<tr><td>Open</td><td><a href="trait.RegionHook.html#method.on_region_opened" title="method mito2::engine::region_hook::RegionHook::on_region_opened"><code>on_region_opened</code></a></td><td>A create or open request registers the region as active (the counterpart to close/drop). Does not fire for the compactor’s transient regions or the catch-up reopen.</td></tr>
<tr><td>Close</td><td><a href="trait.RegionHook.html#method.on_region_closed" title="method mito2::engine::region_hook::RegionHook::on_region_closed"><code>on_region_closed</code></a></td><td>A close request (or a close-after-flush) removes the region from the active set. Data files, manifest and WAL state are <strong>preserved</strong>; the region may be reopened.</td></tr>
<tr><td>Logical drop</td><td><a href="trait.RegionHook.html#method.on_region_dropped" title="method mito2::engine::region_hook::RegionHook::on_region_dropped"><code>on_region_dropped</code></a></td><td>A drop request has been handled: the region leaves the active set and its WAL entries are marked obsolete. Data files are <strong>not yet deleted</strong>.</td></tr>
<tr><td>Physical file removal</td><td><a href="trait.RegionHook.html#method.on_region_files_removed" title="method mito2::engine::region_hook::RegionHook::on_region_files_removed"><code>on_region_files_removed</code></a></td><td>The drop GC worker has deleted the region directory. Terminal file-lifecycle event.</td></tr>
<tr><td>Global GC pass</td><td><a href="trait.RegionHook.html#method.on_region_gc" title="method mito2::engine::region_hook::RegionHook::on_region_gc"><code>on_region_gc</code></a></td><td>The datanode’s global GC worker finished a GC pass for a region — both periodic GC for live regions and the global reclamation of dropped/repartitioned regions (<code>is_region_dropped</code>). Also fired by the offline cleanup path (<code>handle_offline_cleanup_request</code>, i.e. soft-drop PURGE) once the region directory is removed, with <code>is_region_dropped = true</code> and <code>full_file_listing = true</code>.</td></tr>
</tbody></table>
</div>
<p>Notes:</p>
<ul>
<li><code>on_region_closed</code> / <code>on_region_dropped</code> run <strong>inline in the region worker loop</strong>,
so implementations must be fast (same contract as <code>on_manifest_updated</code>).</li>
<li><code>on_region_opened</code> runs inline in the worker loop on the <strong>create</strong> path, but on the
<strong>open</strong> path it fires inside the spawned open task (<code>common_runtime::spawn_global</code>),
i.e. concurrently with the worker loop — after WAL replay, before the region is
registered and its open request is acknowledged. Implementations must still be fast
and must not assume worker-loop-thread affinity or strict ordering against concurrent
requests to other regions.</li>
<li><code>on_region_files_removed</code> runs on the background drop GC task, outside the worker loop.</li>
<li>When global GC is enabled and a normal table region is dropped with <code>partial_drop</code>, its
directory is left for global reclamation and <code>on_region_files_removed</code> is <strong>not</strong> fired
by the drop worker (observe it via the global GC path instead).</li>
<li>The offline cleanup path (<code>handle_offline_cleanup_request</code>, reached by a soft-drop
<code>PURGE</code>) force-removes the region directory but has no <code>RegionMetadataRef</code> for the
offline region, so it cannot fire <code>on_region_files_removed</code>. It fires <code>on_region_gc</code>
instead — with <code>is_region_dropped = true</code> and <code>full_file_listing = true</code> — so
extensions can reclaim sidecar state for the now-removed region. A hook <code>Err</code> is
propagated so the caller retries the (idempotent) cleanup.</li>
<li>Logical file removal (compaction, region edit, truncate) is already observable via
<a href="trait.RegionHook.html#method.on_manifest_updated" title="method mito2::engine::region_hook::RegionHook::on_manifest_updated"><code>on_manifest_updated</code></a> (<code>Edit.files_to_remove</code> / <code>Truncate</code> action); only the drop
worker’s physical directory deletion needs a dedicated file hook.</li>
</ul>
<h3 id="invocation-points"><a class="doc-anchor" href="#invocation-points">§</a>Invocation points</h3>
<p><code>on_sst_files_written</code> is invoked at the SST write site (flush task or compaction task),
immediately after SST files are written but <strong>before</strong> the manifest is committed.</p>
<p><code>on_manifest_updated</code> is funneled through <a href="../../region/struct.ManifestContext.html#method.update_locked" title="method mito2::region::ManifestContext::update_locked"><code>ManifestContext::update_locked</code></a>,
the sole caller of the low-level <a href="../../manifest/manager/struct.RegionManifestManager.html#method.update" title="method mito2::manifest::manager::RegionManifestManager::update"><code>RegionManifestManager::update</code></a>, which
packages each successful write into a <a href="struct.PendingManifestHook.html" title="struct mito2::engine::region_hook::PendingManifestHook"><code>PendingManifestHook</code></a>. The caller
owns the write lock, drops it, and <em>then</em> fires the receipt — the hook must
never run under the lock. <a href="../../region/struct.ManifestContext.html#method.update_manifest" title="method mito2::region::ManifestContext::update_manifest"><code>ManifestContext::update_manifest</code></a> is the common
case: it acquires the lock, delegates to <code>update_locked</code>, and fires the
receipt in one go. Multi-step sequences (staging-exit, role-state backfill)
call <code>update_locked</code> directly under their own held guard.</p>
<p>Non-logical writes (GC, staging bookkeeping) call the manager’s own methods
directly and intentionally do not fire the hook.</p>
<h3 id="future-work"><a class="doc-anchor" href="#future-work">§</a>Future work</h3>
<p><code>on_region_files_removed</code> currently covers only the <strong>drop</strong> GC worker’s physical
directory removal. The global-GC reclamation path and the offline-cleanup path
(soft-drop PURGE) are covered by <code>on_region_gc</code> instead. A broader per-file
<code>on_files_removed</code> hook covering compaction removal and truncate is not yet implemented
(though logical file removal is already observable via <code>on_manifest_updated</code>,
and the global GC reclamation path is covered by <code>on_region_gc</code>).
Role/leadership transitions (<code>on_region_role_changed</code>) are also not hooked.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.PendingManifestHook.html" title="struct mito2::engine::region_hook::PendingManifestHook">Pending<wbr>Manifest<wbr>Hook</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>A deferred <a href="trait.RegionHook.html#method.on_manifest_updated" title="method mito2::engine::region_hook::RegionHook::on_manifest_updated"><code>RegionHook::on_manifest_updated</code></a> notification produced by a
logical manifest write via <a href="../../region/struct.ManifestContext.html#method.update_locked" title="method mito2::region::ManifestContext::update_locked"><code>ManifestContext::update_locked</code></a>.</dd><dt><a class="struct" href="struct.RegionGcInfo.html" title="struct mito2::engine::region_hook::RegionGcInfo">Region<wbr>GcInfo</a></dt><dd>What mito2’s GC pass deleted for a region, handed to
<a href="trait.RegionHook.html#method.on_region_gc" title="method mito2::engine::region_hook::RegionHook::on_region_gc"><code>RegionHook::on_region_gc</code></a>.</dd><dt><a class="struct" href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo">SstFile<wbr>Info</a></dt><dd>Information about a single SST data file written during flush or compaction.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.RegionHook.html" title="trait mito2::engine::region_hook::RegionHook">Region<wbr>Hook</a></dt><dd>Hook for observing region mutations in mito2.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.RegionHookRef.html" title="type mito2::engine::region_hook::RegionHookRef">Region<wbr>Hook<wbr>Ref</a></dt></dl></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"struct":["PendingManifestHook","RegionGcInfo","SstFileInfo"],"trait":["RegionHook"],"type":["RegionHookRef"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,238 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hook for observing region mutations in mito2."><title>RegionHook in mito2::engine::region_hook - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">RegionHook</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Region<wbr>Hook</a></h2><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.on_manifest_updated" title="on_manifest_updated">on_manifest_updated</a></li><li><a href="#method.on_region_closed" title="on_region_closed">on_region_closed</a></li><li><a href="#method.on_region_dropped" title="on_region_dropped">on_region_dropped</a></li><li><a href="#method.on_region_files_removed" title="on_region_files_removed">on_region_files_removed</a></li><li><a href="#method.on_region_gc" title="on_region_gc">on_region_gc</a></li><li><a href="#method.on_region_opened" title="on_region_opened">on_region_opened</a></li><li><a href="#method.on_sst_files_written" title="on_sst_files_written">on_sst_files_written</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>region_<wbr>hook</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">region_hook</a></div><h1>Trait <span class="trait">Region<wbr>Hook</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/region_hook.rs.html#282-458">Source</a> </span></div><pre class="rust item-decl"><code>pub trait RegionHook:
<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
+ <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
+ <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
// Provided methods
fn <a href="#method.on_sst_files_written" class="fn">on_sst_files_written</a>&lt;'life0, 'life1, 'life2, 'life3, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
files: &amp;'life2 [<a class="struct" href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo">SstFileInfo</a>&lt;'life3&gt;],
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_manifest_updated" class="fn">on_manifest_updated</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
action_list: &amp;'life1 <a class="struct" href="../../manifest/action/struct.RegionMetaActionList.html" title="struct mito2::manifest::action::RegionMetaActionList">RegionMetaActionList</a>,
manifest_version: ManifestVersion,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_region_opened" class="fn">on_region_opened</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_region_closed" class="fn">on_region_closed</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_region_dropped" class="fn">on_region_dropped</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_region_files_removed" class="fn">on_region_files_removed</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.on_region_gc" class="fn">on_region_gc</a>&lt;'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 RegionMetadataRef&gt;,
access_layer: &amp;'life2 <a class="type" href="../../access_layer/type.AccessLayerRef.html" title="type mito2::access_layer::AccessLayerRef">AccessLayerRef</a>,
info: &amp;'life3 <a class="struct" href="struct.RegionGcInfo.html" title="struct mito2::engine::region_hook::RegionGcInfo">RegionGcInfo</a>&lt;'life4&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../error/type.Result.html" title="type mito2::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait</span> { ... }
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Hook for observing region mutations in mito2.</p>
<p>Implementations can be registered via the <code>Plugins</code> system:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::Arc;
<span class="kw">use </span>common_base::Plugins;
<span class="kw">use </span>mito2::engine::region_hook::{RegionHook, RegionHookRef};
plugins.insert(Arc::new(MyHook) <span class="kw">as </span>RegionHookRef);</code></pre></div></div></details><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.on_sst_files_written" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#293-300">Source</a><h4 class="code-header">fn <a href="#method.on_sst_files_written" class="fn">on_sst_files_written</a>&lt;'life0, 'life1, 'life2, 'life3, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
files: &amp;'life2 [<a class="struct" href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo">SstFileInfo</a>&lt;'life3&gt;],
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after SST <strong>data files</strong> are physically written, before manifest commit.</p>
<p>This fires only when mito2 itself writes SST files (flush and compaction).
It does <strong>not</strong> fire when SST files are pre-written externally (bulk ingestion,
copy region) or when only index files are written (async index build).</p>
<h5 id="metadata-availability"><a class="doc-anchor" href="#metadata-availability">§</a>Metadata availability</h5>
<p>See <a href="struct.SstFileInfo.html" title="struct mito2::engine::region_hook::SstFileInfo"><code>SstFileInfo</code></a>: <code>file_meta</code> is always complete, but the <a href="../../sst/parquet/struct.SstInfo.html" title="struct mito2::sst::parquet::SstInfo"><code>SstInfo</code></a> footer
and index output are empty on remote compaction. Hooks needing column statistics
(e.g. an Iceberg manifest) must fetch the footer from object storage.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_manifest_updated" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#315-322">Source</a><h4 class="code-header">fn <a href="#method.on_manifest_updated" class="fn">on_manifest_updated</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
action_list: &amp;'life1 <a class="struct" href="../../manifest/action/struct.RegionMetaActionList.html" title="struct mito2::manifest::action::RegionMetaActionList">RegionMetaActionList</a>,
manifest_version: ManifestVersion,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after the region manifest is successfully committed to the <strong>live</strong>
(normal) manifest directory.</p>
<p>Fires for: flush, compaction, region edit, copy region, alter, truncate,
async index build, and apply-staging promote. Does <strong>not</strong> fire for writes
to the staging manifest directory (enter staging, operations during staging,
the intermediate apply-staging edit) — those are suppressed because their
effects are accumulated and delivered in a single promote notification.</p>
<p>Does <strong>not</strong> fire for:</p>
<ul>
<li>Manifest reads / follower sync (no write)</li>
<li>GC / checkpoint (internal bookkeeping)</li>
<li>Failed manifest updates</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_region_opened" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#343-345">Source</a><h4 class="code-header">fn <a href="#method.on_region_opened" class="fn">on_region_opened</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called once a region <strong>open</strong> or <strong>create</strong> succeeds, but <strong>before</strong> the
region is registered in the engine’s active set (<code>insert_region</code> runs
immediately afterwards).</p>
<p>Fires once when a region becomes active via a create or open request —
the natural counterpart to <a href="trait.RegionHook.html#method.on_region_closed" title="method mito2::engine::region_hook::RegionHook::on_region_closed"><code>on_region_closed</code></a> / <a href="trait.RegionHook.html#method.on_region_dropped" title="method mito2::engine::region_hook::RegionHook::on_region_dropped"><code>on_region_dropped</code></a>.
It does <strong>not</strong> fire for the compactor’s transient compaction regions
(<code>open_compaction_region</code>), nor for the internal reopen performed during
follower catch-up / leadership promotion.</p>
<p>On the <strong>create</strong> path it runs inline in the region worker loop; on the
<strong>open</strong> path it runs inside the spawned open task
(<code>common_runtime::spawn_global</code>), concurrently with the worker loop
(after WAL replay, before the region is registered/acknowledged).
Implementations must be fast and must <strong>not</strong> assume worker-loop-thread
affinity or strict ordering against concurrent requests to other regions.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_region_closed" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#360-362">Source</a><h4 class="code-header">fn <a href="#method.on_region_closed" class="fn">on_region_closed</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after a region is <strong>closed</strong> via a close request.</p>
<p>The region is removed from the engine’s active set, but its data files,
manifest, and WAL state are <strong>preserved</strong>; the region may be reopened
later. Fires once per successful close, after the region’s background
tasks (flush/compaction) have been stopped.</p>
<p>Fires for a region of <strong>any</strong> role (leader or follower) that is closed.
Does <strong>not</strong> fire when a region is dropped (see <a href="trait.RegionHook.html#method.on_region_dropped" title="method mito2::engine::region_hook::RegionHook::on_region_dropped"><code>on_region_dropped</code></a>).</p>
<p>Runs inline in the region worker loop; implementations should be fast.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_region_dropped" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#375-377">Source</a><h4 class="code-header">fn <a href="#method.on_region_dropped" class="fn">on_region_dropped</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after a region is <strong>logically dropped</strong> (a drop request has been
handled).</p>
<p>The region is removed from the active set and its WAL entries are marked
obsolete. Its data files are <strong>not yet deleted</strong> — they are scheduled for
asynchronous removal by the GC worker. Observe physical deletion via
<a href="trait.RegionHook.html#method.on_region_files_removed" title="method mito2::engine::region_hook::RegionHook::on_region_files_removed"><code>on_region_files_removed</code></a>.</p>
<p>Runs inline in the region worker loop; implementations should be fast.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_region_files_removed" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#390-396">Source</a><h4 class="code-header">fn <a href="#method.on_region_files_removed" class="fn">on_region_files_removed</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: &amp;'life1 RegionMetadataRef,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after a dropped region’s data files are <strong>physically removed</strong> by
the drop GC worker (the region directory has been deleted).</p>
<p>This is the terminal event in a region’s file lifecycle; no further
callbacks fire for this region id afterwards. Fires only when the drop
worker itself deletes the directory. When global GC is enabled and the
region is a normal table region dropped with <code>partial_drop</code>, the
directory is left for global reclamation and this hook is <strong>not</strong> fired
by the drop worker.</p>
<p>Runs on a background task, outside the region worker loop.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_region_gc" class="method"><a class="src rightside" href="../../../src/mito2/engine/region_hook.rs.html#448-457">Source</a><h4 class="code-header">fn <a href="#method.on_region_gc" class="fn">on_region_gc</a>&lt;'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait&gt;(
&amp;'life0 self,
region_id: RegionId,
region_metadata: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 RegionMetadataRef&gt;,
access_layer: &amp;'life2 <a class="type" href="../../access_layer/type.AccessLayerRef.html" title="type mito2::access_layer::AccessLayerRef">AccessLayerRef</a>,
info: &amp;'life3 <a class="struct" href="struct.RegionGcInfo.html" title="struct mito2::engine::region_hook::RegionGcInfo">RegionGcInfo</a>&lt;'life4&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../error/type.Result.html" title="type mito2::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Called after the datanode’s global GC worker (<code>LocalGcWorker</code>) finishes a
GC pass for a region — live regions (periodic GC) or dropped/repartitioned
regions (the global reclamation path). Also fired by the offline cleanup
path (<code>handle_offline_cleanup_request</code>, i.e. soft-drop PURGE) once the
region directory has been removed. Lets extensions with sidecar files
outside mito2’s region dir clean up residual files.</p>
<p>Always scoped to <a href="struct.RegionGcInfo.html#structfield.removed_files" title="field mito2::engine::region_hook::RegionGcInfo::removed_files"><code>RegionGcInfo::removed_files</code></a>: clean only sidecar
artifacts for the files mito deleted this pass. On a
<a href="struct.RegionGcInfo.html#structfield.full_file_listing" title="field mito2::engine::region_hook::RegionGcInfo::full_file_listing"><code>RegionGcInfo::full_file_listing</code></a> pass you may also reconcile
sidecar-only orphans (e.g. detect a fully-reaped region by cross-checking
the region dir against your own manifest). This callback never authorizes
blind whole-directory removal — derive “fully reaped” from your own state
so a stale mito snapshot can’t cause accidental deletion.
<a href="struct.RegionGcInfo.html#structfield.is_region_dropped" title="field mito2::engine::region_hook::RegionGcInfo::is_region_dropped"><code>RegionGcInfo::is_region_dropped</code></a> is context, not authorization.</p>
<h5 id="retry"><a class="doc-anchor" href="#retry">§</a>Retry</h5>
<p>Returning <code>Err</code> keeps the region un-acknowledged (<code>need_retry_regions</code>)
for a future replay. <strong>Dropped/repartitioned</strong>: guaranteed — metasrv keeps
the <code>table_repart</code> tombstone until <code>Ok</code>, so full-listing passes continue
until cleanup finishes. <strong>Live</strong>: best-effort — not expedited through
candidate selection, and a later full-listing pass may not reconstruct the
same <code>removed_files</code>; treat live cleanup as opportunistic.</p>
<p><code>region_metadata</code> is <code>None</code> for dropped regions; use <code>region_id</code> +
<code>access_layer</code>. Idempotent.</p>
<h5 id="execution-context"><a class="doc-anchor" href="#execution-context">§</a>Execution context</h5>
<p>On the global-GC path this runs on the background GC task, outside the
region worker loop. The offline cleanup path
(<code>handle_offline_cleanup_request</code>, reached by soft-drop PURGE) instead
runs it <strong>inline in the region worker loop</strong> and propagates <code>Err</code> so the
caller retries the (idempotent) cleanup. So — like <code>on_region_closed</code> /
<code>on_region_dropped</code> — implementations <strong>must be fast and must not block
indefinitely</strong> while awaited there: while the callback is pending, every
subsequent DDL request for every region on that worker is blocked.
Extension authors who wrote their hook against the “background GC task”
contract must account for this second, latency-sensitive trigger.</p>
<p>The offline cleanup path fires this callback once the region directory is
confirmed <strong>absent</strong> — including no-op purges where nothing was actually
removed this call (a retry after the directory was already gone, or a
region that never had files on this datanode, since
<code>remove_region_dir_for_full_drop</code> returns <code>Ok</code> for an absent/empty
prefix). <code>RegionGcInfo::removed_files</code> is empty in that case; do <strong>not</strong>
interpret the call as “files were deleted in this call”. This is
asymmetric with the GC path, which fires only when files were deleted or
a full listing was performed.</p>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait <b>is</b> <a href="https://doc.rust-lang.org/1.98.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety".</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/mito2/engine/region_hook/trait.RegionHook.js" async></script></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `RegionHookRef` type in crate `mito2`."><title>RegionHookRef in mito2::engine::region_hook - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">RegionHookRef</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Region<wbr>Hook<wbr>Ref</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine::<wbr>region_<wbr>hook</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">mito2</a>::<wbr><a href="../index.html">engine</a>::<wbr><a href="index.html">region_hook</a></div><h1>Type Alias <span class="type">Region<wbr>Hook<wbr>Ref</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/mito2/engine/region_hook.rs.html#474">Source</a> </span></div><pre class="rust item-decl"><code>pub type RegionHookRef = <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" href="trait.RegionHook.html" title="trait mito2::engine::region_hook::RegionHook">RegionHook</a>&gt;;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct RegionHookRef { <span class="comment">/* private fields */</span> }</code></pre><script src="../../../type.impl/alloc/sync/struct.Arc.js" data-self-path="mito2::engine::region_hook::RegionHookRef" async></script></section></div></main></body></html>
+1
View File
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"constant":["MITO_ENGINE_NAME"],"fn":["is_valid_region_edit","map_batch_responses","new_scan_memory_pool","prepare_batch_open_requests","sequence_range_unsupported_reason","validate_sequence_fences"],"mod":["puffin_index","region_hook"],"struct":["EngineInner","MitoEngine","MitoEngineBuilder"],"type":["TopicGroupedRegionOpenRequests"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TopicGroupedRegionOpenRequests` type in crate `mito2`."><title>TopicGroupedRegionOpenRequests in mito2::engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mito2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">TopicGroupedRegionOpenRequests</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mito2/index.html">mito2</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Topic<wbr>Grouped<wbr>Region<wbr>Open<wbr>Requests</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In mito2::<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mito2</a>::<wbr><a href="index.html">engine</a></div><h1>Type Alias <span class="type">Topic<wbr>Grouped<wbr>Region<wbr>Open<wbr>Requests</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/mito2/engine.rs.html#759">Source</a> </span></div><pre class="rust item-decl"><code>type TopicGroupedRegionOpenRequests = <a class="struct" href="https://doc.rust-lang.org/1.98.1/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(RegionId, RegionOpenRequest)&gt;&gt;;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct TopicGroupedRegionOpenRequests { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/std/collections/hash/map/struct.HashMap.js" data-self-path="mito2::engine::TopicGroupedRegionOpenRequests" async></script></section></div></main></body></html>