mentat/docs/apis/rust/mentat_ffi/index.html
2018-06-22 18:25:54 +01:00

1356 lines
No EOL
86 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 `mentat_ffi` crate.">
<meta name="keywords" content="rust, rustlang, rust-lang, mentat_ffi">
<title>mentat_ffi - Rust</title>
<link rel="stylesheet" type="text/css" href="../normalize.css">
<link rel="stylesheet" type="text/css" href="../rustdoc.css"
id="mainThemeStyle">
<link rel="stylesheet" type="text/css" href="../dark.css">
<link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle">
<script src="../storage.js"></script>
</head>
<body class="rustdoc mod">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<div class="sidebar-menu">&#9776;</div>
<p class='location'>Crate mentat_ffi</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'mentat_ffi', ty: 'mod', relpath: '../'};</script></div>
</nav>
<div class="theme-picker">
<button id="theme-picker" aria-label="Pick another theme!">
<img src="../brush.svg" width="18" alt="Pick another theme!">
</button>
<div id="theme-choices"></div>
</div>
<script src="../theme.js"></script>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><h1 class='fqn'><span class='in-band'>Crate <a class="mod" href=''>mentat_ffi</a></span><span class='out-of-band'><span id='render-detail'>
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span><a class='srclink' href='../src/mentat_ffi/lib.rs.html#11-1854' title='goto source code'>[src]</a></span></h1><div class='docblock'><p>This module exposes an Foreign Function Interface (FFI) that allows Mentat to be
called from other languages.</p>
<p>Functions that are available to other languages in this module are defined as
extern &quot;C&quot; functions which allow them to be layed out correctly for the
platform's C ABI. They all have a <code>#[no_mangle]</code> decorator to ensure
Rust's name mangling is turned off, so that it is easier to link to.</p>
<p>Mentat's FFI contains unsafe code. As it is an interface between foreign code
and native Rust code, Rust cannot guarantee that the types and data that have been passed
to it from another language are present and in the format it is expecting.
This interface is designed to ensure that nothing unsafe passes through this module
and enters Mentat proper</p>
<p>Structs defined with <code>#[repr(C)]</code> are guaranteed to have a layout that is compatible
with the platform's representation in C.</p>
<p>This API passes pointers in two ways, depending on the lifetime of the value and
what value owns it.
Pointers to values that are guaranteed to live beyond the lifetime of the function,
are passed over the FFI as a raw pointer.</p>
<p><code>value as *const Binding</code></p>
<p>Pointers to values that cannot be guaranteed to live beyond the lifetime of the function
are first <code>Box</code>ed so that they live on the heap, and the raw pointer passed this way.</p>
<p><code>Box::into_raw(Box::new(value))</code></p>
<p>The memory for a value that is moved onto the heap before being passed over the FFI
is no longer managed by Rust, but Rust still owns the value. Therefore the pointer
must be returned to Rust in order to be released. To this effect a number of <code>destructor</code>
functions are provided for each Rust value type that is passed, as is a catch all destructor
to release memory for <code>#[repr(C)]</code> values.
The destructors reclaim the memory via <a href="std::boxed::Box">Box</a> and then drop the reference, causing the
memory to be released.</p>
<p>A macro has been provided to make defining destructors easier.</p>
<p><code>define_destructor!(query_builder_destroy, QueryBuilder);</code></p>
<p>Passing a pointer to memory that has already been released will cause Mentat to crash,
so callers have to be careful to ensure they manage their pointers properly.
Failure to call a destructor for a value on the heap will cause a memory leak.</p>
<p>Generally, the functions exposed in this module have a direct mapping to existing Mentat APIs,
in order to keep application logic to a minumum and provide the greatest flexibility
for callers using the interface. However, in some cases a single convenience function
has been provided in order to make the interface easier to use and reduce the number
of calls that have to be made over the FFI to perform a task. An example of this is
<code>store_register_observer</code>, which takes a single native callback function that is then
wrapped inside a Rust closure and added to a <a href="mentat::TxObserver">TxObserver</a> struct. This is then used to
register the observer with the store.</p>
<p><a href="std::result::Result">Result</a> and <a href="std::option::Option">Option</a> Rust types have <code>repr(C)</code> structs that mirror them. This is to provide a more
native access pattern to callers and to enable easier passing of optional types and error
propogation. These types have implemented <a href="std::convert::From">From</a> such that conversion from the Rust type
to the C type is as painless as possible.</p>
</div><h2 id='reexports' class='section-header'><a href="#reexports">Re-exports</a></h2>
<table><tr><td><code>pub use utils::strings::<a class="fn" href="../mentat_ffi/utils/strings/fn.c_char_to_string.html" title="fn mentat_ffi::utils::strings::c_char_to_string">c_char_to_string</a>;</code></td></tr><tr><td><code>pub use utils::strings::<a class="fn" href="../mentat_ffi/utils/strings/fn.kw_from_string.html" title="fn mentat_ffi::utils::strings::kw_from_string">kw_from_string</a>;</code></td></tr><tr><td><code>pub use utils::strings::<a class="fn" href="../mentat_ffi/utils/strings/fn.string_to_c_char.html" title="fn mentat_ffi::utils::strings::string_to_c_char">string_to_c_char</a>;</code></td></tr><tr><td><code>pub use utils::<a class="mod" href="../mentat_ffi/utils/log/index.html" title="mod mentat_ffi::utils::log">log</a>;</code></td></tr></table><h2 id='modules' class='section-header'><a href="#modules">Modules</a></h2>
<table>
<tr class=' module-item'>
<td><a class="mod" href="android/index.html"
title='mod mentat_ffi::android'>android</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="mod" href="utils/index.html"
title='mod mentat_ffi::utils'>utils</a></td>
<td class='docblock-short'>
</td>
</tr></table><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table>
<tr class=' module-item'>
<td><a class="struct" href="struct.EntityBuilder.html"
title='struct mentat_ffi::EntityBuilder'>EntityBuilder</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.ExternOption.html"
title='struct mentat_ffi::ExternOption'>ExternOption</a></td>
<td class='docblock-short'>
<p>A C representation Rust's <a href="std::option::Option">Option</a>.
A value of <code>Some</code> results in <code>value</code> containing a raw pointer as a <code>c_void</code>.
A value of <code>None</code> results in <code>value</code> containing a null pointer.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.ExternResult.html"
title='struct mentat_ffi::ExternResult'>ExternResult</a></td>
<td class='docblock-short'>
<p>A C representation Rust's <a href="std::result::Result">Result</a>.
A value of <code>Ok</code> results in <code>ok</code> containing a raw pointer as a <code>c_void</code>
and <code>err</code> containing a null pointer.
A value of <code>Err</code> results in <code>value</code> containing a null pointer and <code>err</code> containing an error message.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.InProgress.html"
title='struct mentat_ffi::InProgress'>InProgress</a></td>
<td class='docblock-short'>
<p>Represents an in-progress, not yet committed, set of changes to the store.
Call <code>commit</code> to commit your changes, or <code>rollback</code> to discard them.
A transaction is held open until you do so.
Your changes will be implicitly dropped along with this struct.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.InProgressBuilder.html"
title='struct mentat_ffi::InProgressBuilder'>InProgressBuilder</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.InProgressTransactResult.html"
title='struct mentat_ffi::InProgressTransactResult'>InProgressTransactResult</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.KnownEntid.html"
title='struct mentat_ffi::KnownEntid'>KnownEntid</a></td>
<td class='docblock-short'>
<p>An entid that's either already in the store, or newly allocated to a tempid.
TODO: we'd like to link this in some way to the lifetime of a particular PartitionMap.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.QueryBuilder.html"
title='struct mentat_ffi::QueryBuilder'>QueryBuilder</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.QueryInputs.html"
title='struct mentat_ffi::QueryInputs'>QueryInputs</a></td>
<td class='docblock-short'>
<p>Define the inputs to a query. This is in two parts: a set of values known now, and a set of
types known now.
The separate map of types is to allow queries to be algebrized without full knowledge of
the bindings that will be used at execution time.
When built correctly, <code>types</code> is guaranteed to contain the types of <code>values</code> -- use
<code>QueryInputs::new</code> or <code>QueryInputs::with_values</code> to construct an instance.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.QueryOutput.html"
title='struct mentat_ffi::QueryOutput'>QueryOutput</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.RelResult.html"
title='struct mentat_ffi::RelResult'>RelResult</a></td>
<td class='docblock-short'>
<p>The result you get from a 'rel' query, like:</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.Store.html"
title='struct mentat_ffi::Store'>Store</a></td>
<td class='docblock-short'>
<p>A convenience wrapper around a single SQLite connection and a Conn. This is suitable
for applications that don't require complex connection management.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.TransactionChange.html"
title='struct mentat_ffi::TransactionChange'>TransactionChange</a></td>
<td class='docblock-short'>
<p>A C representation of the change provided by the transaction observers
from a single transact.
Holds a transaction identifier, the changes as a set of affected attributes
and the length of the list of changes.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.TxChangeList.html"
title='struct mentat_ffi::TxChangeList'>TxChangeList</a></td>
<td class='docblock-short'>
<p>A C representation of the list of changes provided by the transaction observers.
Provides the list of changes as the length of the list.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.TxObserver.html"
title='struct mentat_ffi::TxObserver'>TxObserver</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.TxReport.html"
title='struct mentat_ffi::TxReport'>TxReport</a></td>
<td class='docblock-short'>
<p>A transaction report summarizes an applied transaction.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.Uuid.html"
title='struct mentat_ffi::Uuid'>Uuid</a></td>
<td class='docblock-short'>
<p>A Universally Unique Identifier (UUID).</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="struct" href="struct.Variable.html"
title='struct mentat_ffi::Variable'>Variable</a></td>
<td class='docblock-short'>
</td>
</tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table>
<tr class=' module-item'>
<td><a class="enum" href="enum.Binding.html"
title='enum mentat_ffi::Binding'>Binding</a></td>
<td class='docblock-short'>
<p>The values bound in a query specification can be:</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.CacheDirection.html"
title='enum mentat_ffi::CacheDirection'>CacheDirection</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.FindSpec.html"
title='enum mentat_ffi::FindSpec'>FindSpec</a></td>
<td class='docblock-short'>
<p>A definition of the first part of a find query: the
<code>[:find ?foo ?bar…]</code> bit.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.QueryResults.html"
title='enum mentat_ffi::QueryResults'>QueryResults</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.TypedValue.html"
title='enum mentat_ffi::TypedValue'>TypedValue</a></td>
<td class='docblock-short'>
<p>Represents a value that can be stored in a Mentat store.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.ValueType.html"
title='enum mentat_ffi::ValueType'>ValueType</a></td>
<td class='docblock-short'>
<p>The attribute of each Mentat assertion has a :db/valueType constraining the value to a
particular set. Mentat recognizes the following :db/valueType values.</p>
</td>
</tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table>
<tr class=' module-item'>
<td><a class="trait" href="trait.BuildTerms.html"
title='trait mentat_ffi::BuildTerms'>BuildTerms</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.HasSchema.html"
title='trait mentat_ffi::HasSchema'>HasSchema</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.IntoThing.html"
title='trait mentat_ffi::IntoThing'>IntoThing</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.Queryable.html"
title='trait mentat_ffi::Queryable'>Queryable</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.Syncable.html"
title='trait mentat_ffi::Syncable'>Syncable</a></td>
<td class='docblock-short'>
</td>
</tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table>
<tr class=' module-item'>
<td><a class="fn" href="fn.changelist_entry_at.html"
title='fn mentat_ffi::changelist_entry_at'>changelist_entry_at</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value at the provided <code>index</code> as a <a href="mentat::Entid">Entid</a> .</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.destroy.html"
title='fn mentat_ffi::destroy'>destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_boolean.html"
title='fn mentat_ffi::entity_builder_add_boolean'>entity_builder_add_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_double.html"
title='fn mentat_ffi::entity_builder_add_double'>entity_builder_add_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_keyword.html"
title='fn mentat_ffi::entity_builder_add_keyword'>entity_builder_add_keyword</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_long.html"
title='fn mentat_ffi::entity_builder_add_long'>entity_builder_add_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_ref.html"
title='fn mentat_ffi::entity_builder_add_ref'>entity_builder_add_ref</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_string.html"
title='fn mentat_ffi::entity_builder_add_string'>entity_builder_add_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_timestamp.html"
title='fn mentat_ffi::entity_builder_add_timestamp'>entity_builder_add_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_add_uuid.html"
title='fn mentat_ffi::entity_builder_add_uuid'>entity_builder_add_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_commit.html"
title='fn mentat_ffi::entity_builder_commit'>entity_builder_commit</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Transacts and commits all the assertions and retractions that have been performed
using this builder.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_destroy.html"
title='fn mentat_ffi::entity_builder_destroy'>entity_builder_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_boolean.html"
title='fn mentat_ffi::entity_builder_retract_boolean'>entity_builder_retract_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_double.html"
title='fn mentat_ffi::entity_builder_retract_double'>entity_builder_retract_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_keyword.html"
title='fn mentat_ffi::entity_builder_retract_keyword'>entity_builder_retract_keyword</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_long.html"
title='fn mentat_ffi::entity_builder_retract_long'>entity_builder_retract_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_ref.html"
title='fn mentat_ffi::entity_builder_retract_ref'>entity_builder_retract_ref</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_string.html"
title='fn mentat_ffi::entity_builder_retract_string'>entity_builder_retract_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_timestamp.html"
title='fn mentat_ffi::entity_builder_retract_timestamp'>entity_builder_retract_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_retract_uuid.html"
title='fn mentat_ffi::entity_builder_retract_uuid'>entity_builder_retract_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.entity_builder_transact.html"
title='fn mentat_ffi::entity_builder_transact'>entity_builder_transact</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Transacts all the assertions and retractions that have been performed
using this builder.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder.html"
title='fn mentat_ffi::in_progress_builder'>in_progress_builder</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Creates a builder using the in progress transaction to allow for programmatic
assertion of values.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_boolean.html"
title='fn mentat_ffi::in_progress_builder_add_boolean'>in_progress_builder_add_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_double.html"
title='fn mentat_ffi::in_progress_builder_add_double'>in_progress_builder_add_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_keyword.html"
title='fn mentat_ffi::in_progress_builder_add_keyword'>in_progress_builder_add_keyword</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_long.html"
title='fn mentat_ffi::in_progress_builder_add_long'>in_progress_builder_add_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_ref.html"
title='fn mentat_ffi::in_progress_builder_add_ref'>in_progress_builder_add_ref</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_string.html"
title='fn mentat_ffi::in_progress_builder_add_string'>in_progress_builder_add_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_timestamp.html"
title='fn mentat_ffi::in_progress_builder_add_timestamp'>in_progress_builder_add_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_add_uuid.html"
title='fn mentat_ffi::in_progress_builder_add_uuid'>in_progress_builder_add_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to assert <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_commit.html"
title='fn mentat_ffi::in_progress_builder_commit'>in_progress_builder_commit</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Transacts and commits all the assertions and retractions that have been performed
using this builder.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_destroy.html"
title='fn mentat_ffi::in_progress_builder_destroy'>in_progress_builder_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_boolean.html"
title='fn mentat_ffi::in_progress_builder_retract_boolean'>in_progress_builder_retract_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_double.html"
title='fn mentat_ffi::in_progress_builder_retract_double'>in_progress_builder_retract_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_keyword.html"
title='fn mentat_ffi::in_progress_builder_retract_keyword'>in_progress_builder_retract_keyword</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_long.html"
title='fn mentat_ffi::in_progress_builder_retract_long'>in_progress_builder_retract_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_ref.html"
title='fn mentat_ffi::in_progress_builder_retract_ref'>in_progress_builder_retract_ref</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_string.html"
title='fn mentat_ffi::in_progress_builder_retract_string'>in_progress_builder_retract_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_timestamp.html"
title='fn mentat_ffi::in_progress_builder_retract_timestamp'>in_progress_builder_retract_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_retract_uuid.html"
title='fn mentat_ffi::in_progress_builder_retract_uuid'>in_progress_builder_retract_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Uses <code>builder</code> to retract <code>value</code> for <code>kw</code> on entity <code>entid</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_builder_transact.html"
title='fn mentat_ffi::in_progress_builder_transact'>in_progress_builder_transact</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Transacts all the assertions and retractions that have been performed
using this builder.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_commit.html"
title='fn mentat_ffi::in_progress_commit'>in_progress_commit</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Commit all the transacts that have been performed using this
in progress transaction.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_destroy.html"
title='fn mentat_ffi::in_progress_destroy'>in_progress_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_entity_builder_from_entid.html"
title='fn mentat_ffi::in_progress_entity_builder_from_entid'>in_progress_entity_builder_from_entid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Creates a builder for an entity with <code>entid</code> using the in progress transaction to
allow for programmatic assertion of values for that entity.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_entity_builder_from_temp_id.html"
title='fn mentat_ffi::in_progress_entity_builder_from_temp_id'>in_progress_entity_builder_from_temp_id</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Creates a builder for an entity with <code>tempid</code> using the in progress transaction to
allow for programmatic assertion of values for that entity.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_rollback.html"
title='fn mentat_ffi::in_progress_rollback'>in_progress_rollback</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Rolls back all the transacts that have been performed using this
in progress transaction.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.in_progress_transact.html"
title='fn mentat_ffi::in_progress_transact'>in_progress_transact</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Perform a single transact operation using the current in progress
transaction. Takes edn as a string to transact.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_boolean.html"
title='fn mentat_ffi::query_builder_bind_boolean'>query_builder_bind_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Boolean">TypedValue::Boolean</a> to a <a href="mentat::Variable">Variable</a> with the given name.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_double.html"
title='fn mentat_ffi::query_builder_bind_double'>query_builder_bind_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Double">TypedValue::Double</a> to a <a href="mentat::Variable">Variable</a> with the given name.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_kw.html"
title='fn mentat_ffi::query_builder_bind_kw'>query_builder_bind_kw</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Ref">TypedValue::Ref</a> to a <a href="mentat::Variable">Variable</a> with the given name. Takes a keyword as a c string in the format
<code>:namespace/name</code> and converts it into an <a href="mentat::NamespacedKeyword">NamespacedKeyworf</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_long.html"
title='fn mentat_ffi::query_builder_bind_long'>query_builder_bind_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Long">TypedValue::Long</a> to a <a href="mentat::Variable">Variable</a> with the given name.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_ref.html"
title='fn mentat_ffi::query_builder_bind_ref'>query_builder_bind_ref</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Ref">TypedValue::Ref</a> to a <a href="mentat::Variable">Variable</a> with the given name.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_ref_kw.html"
title='fn mentat_ffi::query_builder_bind_ref_kw'>query_builder_bind_ref_kw</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Ref">TypedValue::Ref</a> to a <a href="mentat::Variable">Variable</a> with the given name. Takes a keyword as a c string in the format
<code>:namespace/name</code> and converts it into an <a href="mentat::NamespacedKeyword">NamespacedKeyworf</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_string.html"
title='fn mentat_ffi::query_builder_bind_string'>query_builder_bind_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::String">TypedValue::String</a> to a <a href="mentat::Variable">Variable</a> with the given name.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_timestamp.html"
title='fn mentat_ffi::query_builder_bind_timestamp'>query_builder_bind_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Instant">TypedValue::Instant</a> to a <a href="mentat::Variable">Variable</a> with the given name.
Takes a timestamp in microseconds.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_bind_uuid.html"
title='fn mentat_ffi::query_builder_bind_uuid'>query_builder_bind_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Binds a <a href="mentat::TypedValue::Uuid">TypedValue::Uuid</a> to a <a href="mentat::Variable">Variable</a> with the given name.
Takes a <code>UUID</code> as a byte slice of length 16. This maps directly to the <code>uuid_t</code> C type.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_destroy.html"
title='fn mentat_ffi::query_builder_destroy'>query_builder_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_execute.html"
title='fn mentat_ffi::query_builder_execute'>query_builder_execute</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Executes a query and returns the results as a <a href="mentat::QueryResults::Rel">Rel</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_execute_coll.html"
title='fn mentat_ffi::query_builder_execute_coll'>query_builder_execute_coll</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Executes a query and returns the results as a <a href="mentat::QueryResults::Coll">Coll</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_execute_scalar.html"
title='fn mentat_ffi::query_builder_execute_scalar'>query_builder_execute_scalar</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Executes a query and returns the results as a <a href="mentat::QueryResults::Scalar">Scalar</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.query_builder_execute_tuple.html"
title='fn mentat_ffi::query_builder_execute_tuple'>query_builder_execute_tuple</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Executes a query and returns the results as a <a href="mentat::QueryResults::Tuple">Tuple</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.row_at_index.html"
title='fn mentat_ffi::row_at_index'>row_at_index</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value at the provided <code>index</code> as a <code>Vec&lt;ValueType&gt;</code>.
If there is no value present at the <code>index</code>, a null pointer is returned.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_begin_transaction.html"
title='fn mentat_ffi::store_begin_transaction'>store_begin_transaction</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Starts a new transaction to allow multiple transacts to be
performed together. This is more efficient than performing
a large set of individual commits.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_cache_attribute_bi_directional.html"
title='fn mentat_ffi::store_cache_attribute_bi_directional'>store_cache_attribute_bi_directional</a></td>
<td class='docblock-short'>
<p>Adds an attribute to the cache.
<code>store_cache_attribute_bi_directional</code> caches entity in both available directions, forward and reverse.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_cache_attribute_forward.html"
title='fn mentat_ffi::store_cache_attribute_forward'>store_cache_attribute_forward</a></td>
<td class='docblock-short'>
<p>Adds an attribute to the cache.
<code>store_cache_attribute_forward</code> caches values for an attribute keyed by entity
(i.e. find values and entities that have this attribute, or find values of attribute for an entity)</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_cache_attribute_reverse.html"
title='fn mentat_ffi::store_cache_attribute_reverse'>store_cache_attribute_reverse</a></td>
<td class='docblock-short'>
<p>Adds an attribute to the cache.
<code>store_cache_attribute_reverse</code> caches entities for an attribute keyed by value.
(i.e. find entities that have a particular value for an attribute).</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_destroy.html"
title='fn mentat_ffi::store_destroy'>store_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_entid_for_attribute.html"
title='fn mentat_ffi::store_entid_for_attribute'>store_entid_for_attribute</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the <a href="mentat::Entid">Entid</a> associated with the <code>attr</code> as <code>:namespace/name</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_entity_builder_from_entid.html"
title='fn mentat_ffi::store_entity_builder_from_entid'>store_entity_builder_from_entid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Starts a new transaction and creates a builder for an entity with <code>entid</code>
using the transaction to allow for programmatic assertion of values for that entity.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_entity_builder_from_temp_id.html"
title='fn mentat_ffi::store_entity_builder_from_temp_id'>store_entity_builder_from_temp_id</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Starts a new transaction and creates a builder for an entity with <code>tempid</code>
using the transaction to allow for programmatic assertion of values for that entity.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_in_progress_builder.html"
title='fn mentat_ffi::store_in_progress_builder'>store_in_progress_builder</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Starts a new transaction and creates a builder using the transaction
to allow for programmatic assertion of values.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_open.html"
title='fn mentat_ffi::store_open'>store_open</a></td>
<td class='docblock-short'>
<p>A store cannot be opened twice to the same location.
Once created, the reference to the store is held by the caller and not Rust,
therefore the caller is responsible for calling <code>destroy</code> to release the memory
used by the <a href="mentat::Store">Store</a> in order to avoid a memory leak.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_query.html"
title='fn mentat_ffi::store_query'>store_query</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Creates a <a href="mentat::QueryBuilder">QueryBuilder</a> from the given store to execute the provided query.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_register_observer.html"
title='fn mentat_ffi::store_register_observer'>store_register_observer</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Registers a <a href="mentat::TxObserver">TxObserver</a> with the <code>key</code> to observe changes to <code>attributes</code>
on this <code>store</code>.
Calls <code>callback</code> is a relevant transaction occurs.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_transact.html"
title='fn mentat_ffi::store_transact'>store_transact</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Performs a single transaction against the store.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_unregister_observer.html"
title='fn mentat_ffi::store_unregister_observer'>store_unregister_observer</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Unregisters a <a href="mentat::TxObserver">TxObserver</a> with the <code>key</code> to observe changes on this <code>store</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.store_value_for_attribute.html"
title='fn mentat_ffi::store_value_for_attribute'>store_value_for_attribute</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns an <a href="ExternResult">ExternResult</a> containing the <a href="mentat::Binding">Binding</a> associated with the <code>attribute</code> as <code>:namespace/name</code>
for the given <code>entid</code>.
If there is a value for that <code>attribute</code> on the entity with id <code>entid</code> then the value is returned in <code>ok</code>.
If there no value for that <code>attribute</code> on the entity with id <code>entid</code> but the attribute is value,
then a null pointer is returned in <code>ok</code>.
If there is no <a href="mentat::Attribute">Attribute</a> in the <a href="mentat::Schema">Schema</a> for the given <code>attribute</code> then an error is returned in <code>err</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.tx_change_list_entry_at.html"
title='fn mentat_ffi::tx_change_list_entry_at'>tx_change_list_entry_at</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value at the provided <code>index</code> as a <a href="TransactionChange">TransactionChange</a> .</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.tx_report_destroy.html"
title='fn mentat_ffi::tx_report_destroy'>tx_report_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.tx_report_entity_for_temp_id.html"
title='fn mentat_ffi::tx_report_entity_for_temp_id'>tx_report_entity_for_temp_id</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Fetches the <a href="mentat::Entid">Entid</a> assigned to the <code>tempid</code> during the transaction represented
by the given <a href="mentat::TxReport">TxReport</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.tx_report_get_entid.html"
title='fn mentat_ffi::tx_report_get_entid'>tx_report_get_entid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Fetches the <code>tx_id</code> for the given <a href="mentat::TxReport">TxReport</a>`.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.tx_report_get_tx_instant.html"
title='fn mentat_ffi::tx_report_get_tx_instant'>tx_report_get_tx_instant</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Fetches the <code>tx_instant</code> for the given <a href="mentat::TxReport">TxReport</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_destroy.html"
title='fn mentat_ffi::typed_value_destroy'>typed_value_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_boolean.html"
title='fn mentat_ffi::typed_value_into_boolean'>typed_value_into_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a boolean represented as an <code>i32</code>.
If the value of the boolean is <code>true</code> the value returned is 1.
If the value of the boolean is <code>false</code> the value returned is 0.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_double.html"
title='fn mentat_ffi::typed_value_into_double'>typed_value_into_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a <code>f64</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_entid.html"
title='fn mentat_ffi::typed_value_into_entid'>typed_value_into_entid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as an <a href="mentat::Entid">Entid</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_kw.html"
title='fn mentat_ffi::typed_value_into_kw'>typed_value_into_kw</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as an keyword C <code>String</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_long.html"
title='fn mentat_ffi::typed_value_into_long'>typed_value_into_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a C <code>long</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_string.html"
title='fn mentat_ffi::typed_value_into_string'>typed_value_into_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a C <code>String</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_timestamp.html"
title='fn mentat_ffi::typed_value_into_timestamp'>typed_value_into_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a microsecond timestamp.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_into_uuid.html"
title='fn mentat_ffi::typed_value_into_uuid'>typed_value_into_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes a <a href="mentat::Binding">Binding</a> and returns the value as a UUID byte slice of length 16.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_list_destroy.html"
title='fn mentat_ffi::typed_value_list_destroy'>typed_value_list_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_list_into_iter.html"
title='fn mentat_ffi::typed_value_list_into_iter'>typed_value_list_into_iter</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes the <code>Vec&lt;Binding&gt;</code> and returns an iterator over the values.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_list_iter_destroy.html"
title='fn mentat_ffi::typed_value_list_iter_destroy'>typed_value_list_iter_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_list_iter_next.html"
title='fn mentat_ffi::typed_value_list_iter_next'>typed_value_list_iter_next</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the next value in the <code>iter</code> as a <a href="mentat::Binding">Binding</a>.
If there is no value next value, a null pointer is returned.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_result_set_destroy.html"
title='fn mentat_ffi::typed_value_result_set_destroy'>typed_value_result_set_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_result_set_into_iter.html"
title='fn mentat_ffi::typed_value_result_set_into_iter'>typed_value_result_set_into_iter</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Consumes the <code>RelResult&lt;Binding&gt;</code> and returns an iterator over the values.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_result_set_iter_destroy.html"
title='fn mentat_ffi::typed_value_result_set_iter_destroy'>typed_value_result_set_iter_destroy</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_result_set_iter_next.html"
title='fn mentat_ffi::typed_value_result_set_iter_next'>typed_value_result_set_iter_next</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the next value in the <code>iter</code> as a <code>Vec&lt;ValueType&gt;</code>.
If there is no value next value, a null pointer is returned.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.typed_value_value_type.html"
title='fn mentat_ffi::typed_value_value_type'>typed_value_value_type</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the <a href="mentat::ValueType">ValueType</a> of this <a href="mentat::Binding">Binding</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index.html"
title='fn mentat_ffi::value_at_index'>value_at_index</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value at the provided <code>index</code> as a <a href="mentat::Binding">Binding</a>.
If there is no value present at the <code>index</code>, a null pointer is returned.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_boolean.html"
title='fn mentat_ffi::value_at_index_into_boolean'>value_at_index_into_boolean</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a boolean represented by a <code>i32</code>.
If the value of the <code>boolean</code> is <code>true</code> then the value returned is 1.
If the value of the <code>boolean</code> is <code>false</code> then the value returned is 0.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_double.html"
title='fn mentat_ffi::value_at_index_into_double'>value_at_index_into_double</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as an <code>f64</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_entid.html"
title='fn mentat_ffi::value_at_index_into_entid'>value_at_index_into_entid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as an <a href="mentat::Entid">Entid</a>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_kw.html"
title='fn mentat_ffi::value_at_index_into_kw'>value_at_index_into_kw</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a keyword C <code>String</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_long.html"
title='fn mentat_ffi::value_at_index_into_long'>value_at_index_into_long</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a <code>long</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_string.html"
title='fn mentat_ffi::value_at_index_into_string'>value_at_index_into_string</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a C <code>String</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_timestamp.html"
title='fn mentat_ffi::value_at_index_into_timestamp'>value_at_index_into_timestamp</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a microsecond timestamp.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="fn" href="fn.value_at_index_into_uuid.html"
title='fn mentat_ffi::value_at_index_into_uuid'>value_at_index_into_uuid</a><a title='unsafe function' href='#'><sup></sup></a></td>
<td class='docblock-short'>
<p>Returns the value of the <a href="mentat::Binding">Binding</a> at <code>index</code> as a UUID byte slice of length 16.</p>
</td>
</tr></table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
<table>
<tr class=' module-item'>
<td><a class="type" href="type.BindingIterator.html"
title='type mentat_ffi::BindingIterator'>BindingIterator</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="type" href="type.BindingListIterator.html"
title='type mentat_ffi::BindingListIterator'>BindingListIterator</a></td>
<td class='docblock-short'>
</td>
</tr>
<tr class=' module-item'>
<td><a class="type" href="type.Entid.html"
title='type mentat_ffi::Entid'>Entid</a></td>
<td class='docblock-short'>
<p>Represents one entid in the entid space.</p>
</td>
</tr></table></section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt><kbd>?</kbd></dt>
<dd>Show this help dialog</dd>
<dt><kbd>S</kbd></dt>
<dd>Focus the search field</dd>
<dt><kbd></kbd></dt>
<dd>Move up in search results</dd>
<dt><kbd></kbd></dt>
<dd>Move down in search results</dd>
<dt><kbd></kbd></dt>
<dd>Switch tab</dd>
<dt><kbd>&#9166;</kbd></dt>
<dd>Go to active search result</dd>
<dt><kbd>+</kbd></dt>
<dd>Expand all sections</dd>
<dt><kbd>-</kbd></dt>
<dd>Collapse all sections</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../";
window.currentCrate = "mentat_ffi";
</script>
<script src="../main.js"></script>
<script defer src="../search-index.js"></script>
</body>
</html>