<!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 `ProgramBuilder` struct in crate `ocl`."> <meta name="keywords" content="rust, rustlang, rust-lang, ProgramBuilder"> <title>ocl::builders::ProgramBuilder - 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="../../main.css" id="themeStyle"> <script src="../../storage.js"></script> </head> <body class="rustdoc struct"> <!--[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">☰</div> <p class='location'>Struct ProgramBuilder</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.cmplr_def">cmplr_def</a><a href="#method.cmplr_opt">cmplr_opt</a><a href="#method.bo">bo</a><a href="#method.src_file">src_file</a><a href="#method.source_file">source_file</a><a href="#method.src">src</a><a href="#method.source">source</a><a href="#method.binaries">binaries</a><a href="#method.devices">devices</a><a href="#method.get_device_spec">get_device_spec</a><a href="#method.get_compiler_options">get_compiler_options</a><a href="#method.get_src_strings">get_src_strings</a><a href="#method.build">build</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a></div></div><p class='location'><a href='../index.html'>ocl</a>::<wbr><a href='index.html'>builders</a></p><script>window.sidebarCurrent = {name: 'ProgramBuilder', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></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'>Struct <a href='../index.html'>ocl</a>::<wbr><a href='index.html'>builders</a>::<wbr><a class="struct" href=''>ProgramBuilder</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'>−</span>] </a> </span><a class='srclink' href='../../src/ocl/standard/program.rs.html#193-197' title='goto source code'>[src]</a></span></h1> <pre class='rust struct'><div class="docblock attributes">#[must_use = "builders do nothing unless \'::build\' is called"] </div>pub struct ProgramBuilder<'b> { /* fields omitted */ }</pre><div class='docblock'><p>A builder for <code>Program</code>.</p> </div> <h2 id='methods' class='small-section-header'> Methods<a href='#methods' class='anchor'></a> </h2> <h3 id='impl' class='impl'><span class='in-band'><code>impl<'b> <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code><a href='#impl' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#199-543' title='goto source code'>[src]</a></span></h3> <div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><code>pub fn <a href='#method.new' class='fnname'>new</a>() -> <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#201-207' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns a new, empty, build configuration object.</p> </div><h4 id='method.cmplr_def' class="method"><span id='cmplr_def.v' class='invisible'><code>pub fn <a href='#method.cmplr_def' class='fnname'>cmplr_def</a><'a, S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>>(<br> &'a mut self, <br> name: S, <br> val: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a><br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#216-219' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds a build option containing a compiler command line definition. Formatted as <code>-D {name}={val}</code>.</p> <h2 id="example" class="section-header"><a href="#example">Example</a></h2> <p><code>...cmplr_def("MAX_ITERS", 500)...</code></p> </div><h4 id='method.cmplr_opt' class="method"><span id='cmplr_opt.v' class='invisible'><code>pub fn <a href='#method.cmplr_opt' class='fnname'>cmplr_opt</a><'a, S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>>(<br> &'a mut self, <br> co: S<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#228-231' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds a build option containing a raw compiler command line parameter. Formatted as <code>{}</code> (exact text).</p> <h2 id="example-1" class="section-header"><a href="#example-1">Example</a></h2> <p><code>...cmplr_opt("-g")...</code></p> </div><h4 id='method.bo' class="method"><span id='bo.v' class='invisible'><code>pub fn <a href='#method.bo' class='fnname'>bo</a><'a>(&'a mut self, bo: <a class="enum" href="../../ocl/builders/enum.BuildOpt.html" title="enum ocl::builders::BuildOpt">BuildOpt</a>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#237-240' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Pushes pre-created build option to the list of options.</p> <p>If either <code>::il</code> or <code>::binaries</code> are used and raw source is added, it will be ignored.</p> </div><h4 id='method.src_file' class="method"><span id='src_file.v' class='invisible'><code>pub fn <a href='#method.src_file' class='fnname'>src_file</a><'a, P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.PathBuf.html" title="struct std::path::PathBuf">PathBuf</a>>>(<br> &'a mut self, <br> file_path: P<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#245-247' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds the contents of a file to the program.</p> </div><h4 id='method.source_file' class="method"><span id='source_file.v' class='invisible'><code>pub fn <a href='#method.source_file' class='fnname'>source_file</a><'a, P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.PathBuf.html" title="struct std::path::PathBuf">PathBuf</a>>>(<br> &'a mut self, <br> file_path: P<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#250-264' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Opens a file and adds its contents to the program source.</p> </div><h4 id='method.src' class="method"><span id='src.v' class='invisible'><code>pub fn <a href='#method.src' class='fnname'>src</a><'a, S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>>(<br> &'a mut self, <br> src: S<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#269-271' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds raw text to the program source.</p> </div><h4 id='method.source' class="method"><span id='source.v' class='invisible'><code>pub fn <a href='#method.source' class='fnname'>source</a><'a, S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>>(<br> &'a mut self, <br> src: S<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#276-289' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds raw text to the program source.</p> </div><h4 id='method.binaries' class="method"><span id='binaries.v' class='invisible'><code>pub fn <a href='#method.binaries' class='fnname'>binaries</a><'a>(<br> &'a mut self, <br> bins: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'b [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'b [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#294-301' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Adds a binary to be loaded.</p> <p>There must be one binary for each device listed in <code>::devices</code>.</p> </div><h4 id='method.devices' class="method"><span id='devices.v' class='invisible'><code>pub fn <a href='#method.devices' class='fnname'>devices</a><'a, D: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="enum" href="../../ocl/builders/enum.DeviceSpecifier.html" title="enum ocl::builders::DeviceSpecifier">DeviceSpecifier</a>>>(<br> &'a mut self, <br> device_spec: D<br>) -> &'a mut <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#341-346' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Specifies a list of devices to build this program on. The devices must be associated with the context passed to <code>::build</code> later on.</p> <p>Devices may be specified in any number of ways including simply passing a device or slice of devices. See the <a href="enum.DeviceSpecifier.html#method.from"><code>impl From</code></a> section of <a href="enum.DeviceSpecifier.html"><code>DeviceSpecifier</code></a> for more information.</p> <h2 id="panics" class="section-header"><a href="#panics">Panics</a></h2> <p>Devices must not have already been specified.</p> </div><h4 id='method.get_device_spec' class="method"><span id='get_device_spec.v' class='invisible'><code>pub fn <a href='#method.get_device_spec' class='fnname'>get_device_spec</a>(&self) -> &<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../ocl/builders/enum.DeviceSpecifier.html" title="enum ocl::builders::DeviceSpecifier">DeviceSpecifier</a>></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#349-351' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns the devices specified to be associated the program.</p> </div><h4 id='method.get_compiler_options' class="method"><span id='get_compiler_options.v' class='invisible'><code>pub fn <a href='#method.get_compiler_options' class='fnname'>get_compiler_options</a>(&self) -> <a class="type" href="../../ocl/error/type.Result.html" title="type ocl::error::Result">OclResult</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/ffi/c_str/struct.CString.html" title="struct std::ffi::c_str::CString">CString</a>></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#355-377' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns a concatenated string of command line options to be passed to the compiler when building this program.</p> </div><h4 id='method.get_src_strings' class="method"><span id='get_src_strings.v' class='invisible'><code>pub fn <a href='#method.get_src_strings' class='fnname'>get_src_strings</a>(&self) -> <a class="type" href="../../ocl/error/type.Result.html" title="type ocl::error::Result">OclResult</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/ffi/c_str/struct.CString.html" title="struct std::ffi::c_str::CString">CString</a>>></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#432-459' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns the final program source code as a list of strings.</p> <h3 id="order-of-inclusion" class="section-header"><a href="#order-of-inclusion">Order of Inclusion</a></h3> <ol> <li>Macro definitions and code strings specified by a <code>BuildOpt::IncludeDefine</code> or <code>BuildOpt::IncludeRaw</code> via <code>::bo</code></li> <li>Contents of files specified via <code>::src_file</code></li> <li>Contents of strings specified via <code>::src</code> or a <code>BuildOpt::IncludeRawEof</code> via <code>::bo</code></li> </ol> </div><h4 id='method.build' class="method"><span id='build.v' class='invisible'><code>pub fn <a href='#method.build' class='fnname'>build</a>(&self, context: &<a class="struct" href="../../ocl/struct.Context.html" title="struct ocl::Context">Context</a>) -> <a class="type" href="../../ocl/error/type.Result.html" title="type ocl::error::Result">OclResult</a><<a class="struct" href="../../ocl/struct.Program.html" title="struct ocl::Program">Program</a>></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#469-498' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns a newly built Program.</p> </div></div> <h2 id='implementations' class='small-section-header'> Trait Implementations<a href='#implementations' class='anchor'></a> </h2> <h3 id='impl-Clone' class='impl'><span class='in-band'><code>impl<'b> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code><a href='#impl-Clone' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#192' title='goto source code'>[src]</a></span></h3> <div class='impl-items'><h4 id='method.clone' class="method"><span id='clone.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&self) -> <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#192' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p> </div><h4 id='method.clone_from' class="method"><span id='clone_from.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code></span><span class='out-of-band'><div class='ghost'></div><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#112-114' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p> </div></div><h3 id='impl-Debug' class='impl'><span class='in-band'><code>impl<'b> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../../ocl/builders/struct.ProgramBuilder.html" title="struct ocl::builders::ProgramBuilder">ProgramBuilder</a><'b></code><a href='#impl-Debug' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#192' title='goto source code'>[src]</a></span></h3> <div class='impl-items'><h4 id='method.fmt' class="method"><span id='fmt.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&self, __arg_0: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/program.rs.html#192' title='goto source code'>[src]</a></span></h4> <div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p> </div></div></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>⏎</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 = "ocl"; </script> <script src="../../main.js"></script> <script defer src="../../search-index.js"></script> </body> </html>