added the heapless crate and added new docs

This commit is contained in:
Zenn 2023-08-19 19:14:32 +02:00
parent a33a57bd49
commit ba5662a17e
230 changed files with 48215 additions and 40 deletions

View file

@ -91,6 +91,47 @@
<a href="#91" id="91">91</a>
<a href="#92" id="92">92</a>
<a href="#93" id="93">93</a>
<a href="#94" id="94">94</a>
<a href="#95" id="95">95</a>
<a href="#96" id="96">96</a>
<a href="#97" id="97">97</a>
<a href="#98" id="98">98</a>
<a href="#99" id="99">99</a>
<a href="#100" id="100">100</a>
<a href="#101" id="101">101</a>
<a href="#102" id="102">102</a>
<a href="#103" id="103">103</a>
<a href="#104" id="104">104</a>
<a href="#105" id="105">105</a>
<a href="#106" id="106">106</a>
<a href="#107" id="107">107</a>
<a href="#108" id="108">108</a>
<a href="#109" id="109">109</a>
<a href="#110" id="110">110</a>
<a href="#111" id="111">111</a>
<a href="#112" id="112">112</a>
<a href="#113" id="113">113</a>
<a href="#114" id="114">114</a>
<a href="#115" id="115">115</a>
<a href="#116" id="116">116</a>
<a href="#117" id="117">117</a>
<a href="#118" id="118">118</a>
<a href="#119" id="119">119</a>
<a href="#120" id="120">120</a>
<a href="#121" id="121">121</a>
<a href="#122" id="122">122</a>
<a href="#123" id="123">123</a>
<a href="#124" id="124">124</a>
<a href="#125" id="125">125</a>
<a href="#126" id="126">126</a>
<a href="#127" id="127">127</a>
<a href="#128" id="128">128</a>
<a href="#129" id="129">129</a>
<a href="#130" id="130">130</a>
<a href="#131" id="131">131</a>
<a href="#132" id="132">132</a>
<a href="#133" id="133">133</a>
<a href="#134" id="134">134</a>
</pre></div><pre class="rust"><code><span class="attr">#![allow(unused_imports)]
</span><span class="doccomment">/// Create a space for Progmem variable
/// ## Example
@ -109,6 +150,11 @@
/// progmem!(
/// static image: [u8; _] = [8, 8, 0x81, 0x00, 0x12, 0x40, 0x04, 0x11, 0x00, 0x04];
/// );
///
/// // for a Vector
/// progmem!(
/// static mut walls: Vec&lt;Player, 100&gt; = Vec::new();
/// );
/// ```
</span><span class="attr">#[macro_export]
</span><span class="macro">macro_rules! </span>progmem {
@ -124,6 +170,42 @@
$(<span class="macro-nonterminal">$rest</span>)*
}
};
(
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>:meta] </span>)*
<span class="macro-nonterminal">$v</span>:vis <span class="macro-nonterminal">$id</span>:ident <span class="kw-2">mut </span><span class="macro-nonterminal">$name</span>:ident: [<span class="macro-nonterminal">$ty</span>:ty; <span class="kw">_</span>] = <span class="macro-nonterminal">$value</span>:expr;
$(<span class="macro-nonterminal">$rest</span>:tt)*
) =&gt; {
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>] </span>)*
<span class="attr">#[link_section = <span class="string">&quot;.progmem.data&quot;</span>]
</span><span class="macro-nonterminal">$v $id </span><span class="kw-2">mut </span><span class="macro-nonterminal">$name</span>: [<span class="macro-nonterminal">$ty</span>; <span class="macro-nonterminal">$value</span>.len()] = <span class="macro-nonterminal">$value</span>;
<span class="macro-nonterminal">$</span><span class="macro">crate::progmem!</span>{
$(<span class="macro-nonterminal">$rest</span>)*
}
};
(
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>:meta] </span>)*
<span class="macro-nonterminal">$v</span>:vis <span class="macro-nonterminal">$id</span>:ident <span class="macro-nonterminal">$name</span>:ident: <span class="macro-nonterminal">$ty</span>:ty = <span class="macro-nonterminal">$value</span>:expr;
$(<span class="macro-nonterminal">$rest</span>:tt)*
) =&gt; {
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>] </span>)*
<span class="attr">#[link_section = <span class="string">&quot;.progmem.data&quot;</span>]
</span><span class="macro-nonterminal">$v $id $name</span>: <span class="macro-nonterminal">$ty </span>= <span class="macro-nonterminal">$value</span>;
<span class="macro-nonterminal">$</span><span class="macro">crate::progmem!</span>{
$(<span class="macro-nonterminal">$rest</span>)*
}
};
(
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>:meta] </span>)*
<span class="macro-nonterminal">$v</span>:vis <span class="macro-nonterminal">$id</span>:ident <span class="kw-2">mut </span><span class="macro-nonterminal">$name</span>:ident: <span class="macro-nonterminal">$ty</span>:ty = <span class="macro-nonterminal">$value</span>:expr;
$(<span class="macro-nonterminal">$rest</span>:tt)*
) =&gt; {
$( <span class="attr">#[<span class="macro-nonterminal">$attr</span>] </span>)*
<span class="attr">#[link_section = <span class="string">&quot;.progmem.data&quot;</span>]
</span><span class="macro-nonterminal">$v $id </span><span class="kw-2">mut </span><span class="macro-nonterminal">$name</span>: <span class="macro-nonterminal">$ty </span>= <span class="macro-nonterminal">$value</span>;
<span class="macro-nonterminal">$</span><span class="macro">crate::progmem!</span>{
$(<span class="macro-nonterminal">$rest</span>)*
}
};
() =&gt; ()
}