113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <section xmlns="http://docbook.org/ns/docbook"
 | |
|          xmlns:xlink="http://www.w3.org/1999/xlink"
 | |
|          xmlns:xi="http://www.w3.org/2001/XInclude"
 | |
|          xml:id="sec-functions-library-asserts">
 | |
|  <title>Assert functions</title>
 | |
| 
 | |
|  <section xml:id="function-library-lib.asserts.assertMsg">
 | |
|   <title><function>lib.asserts.assertMsg</function></title>
 | |
| 
 | |
|   <subtitle><literal>assertMsg :: Bool -> String -> Bool</literal>
 | |
|   </subtitle>
 | |
| 
 | |
|   <xi:include href="./locations.xml" xpointer="lib.asserts.assertMsg" />
 | |
| 
 | |
|   <para>
 | |
|    Print a trace message if <literal>pred</literal> is false.
 | |
|   </para>
 | |
| 
 | |
|   <para>
 | |
|    Intended to be used to augment asserts with helpful error messages.
 | |
|   </para>
 | |
| 
 | |
|   <variablelist>
 | |
|    <varlistentry>
 | |
|     <term>
 | |
|      <varname>pred</varname>
 | |
|     </term>
 | |
|     <listitem>
 | |
|      <para>
 | |
|       Condition under which the <varname>msg</varname> should <emphasis>not</emphasis> be printed.
 | |
|      </para>
 | |
|     </listitem>
 | |
|    </varlistentry>
 | |
|    <varlistentry>
 | |
|     <term>
 | |
|      <varname>msg</varname>
 | |
|     </term>
 | |
|     <listitem>
 | |
|      <para>
 | |
|       Message to print.
 | |
|      </para>
 | |
|     </listitem>
 | |
|    </varlistentry>
 | |
|   </variablelist>
 | |
| 
 | |
|   <example xml:id="function-library-lib.asserts.assertMsg-example-false">
 | |
|    <title>Printing when the predicate is false</title>
 | |
| <programlisting><![CDATA[
 | |
| assert lib.asserts.assertMsg ("foo" == "bar") "foo is not bar, silly"
 | |
| stderr> trace: foo is not bar, silly
 | |
| stderr> assert failed
 | |
| ]]></programlisting>
 | |
|   </example>
 | |
|  </section>
 | |
| 
 | |
|  <section xml:id="function-library-lib.asserts.assertOneOf">
 | |
|   <title><function>lib.asserts.assertOneOf</function></title>
 | |
| 
 | |
|   <subtitle><literal>assertOneOf :: String -> String ->
 | |
|       StringList -> Bool</literal>
 | |
|   </subtitle>
 | |
| 
 | |
|   <xi:include href="./locations.xml" xpointer="lib.asserts.assertOneOf" />
 | |
| 
 | |
|   <para>
 | |
|    Specialized <function>asserts.assertMsg</function> for checking if <varname>val</varname> is one of the elements of <varname>xs</varname>. Useful for checking enums.
 | |
|   </para>
 | |
| 
 | |
|   <variablelist>
 | |
|    <varlistentry>
 | |
|     <term>
 | |
|      <varname>name</varname>
 | |
|     </term>
 | |
|     <listitem>
 | |
|      <para>
 | |
|       The name of the variable the user entered <varname>val</varname> into, for inclusion in the error message.
 | |
|      </para>
 | |
|     </listitem>
 | |
|    </varlistentry>
 | |
|    <varlistentry>
 | |
|     <term>
 | |
|      <varname>val</varname>
 | |
|     </term>
 | |
|     <listitem>
 | |
|      <para>
 | |
|       The value of what the user provided, to be compared against the values in <varname>xs</varname>.
 | |
|      </para>
 | |
|     </listitem>
 | |
|    </varlistentry>
 | |
|    <varlistentry>
 | |
|     <term>
 | |
|      <varname>xs</varname>
 | |
|     </term>
 | |
|     <listitem>
 | |
|      <para>
 | |
|       The list of valid values.
 | |
|      </para>
 | |
|     </listitem>
 | |
|    </varlistentry>
 | |
|   </variablelist>
 | |
| 
 | |
|   <example xml:id="function-library-lib.asserts.assertOneOf-example">
 | |
|    <title>Ensuring a user provided a possible value</title>
 | |
| <programlisting><![CDATA[
 | |
| let sslLibrary = "bearssl";
 | |
| in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ];
 | |
| => false
 | |
| stderr> trace: sslLibrary must be one of "openssl", "libressl", but is: "bearssl"
 | |
|         ]]></programlisting>
 | |
|   </example>
 | |
|  </section>
 | |
| </section>
 | 
