document.write('<style scoped>.paint-bordered { border: 1px solid #dddddd; border-radius: 2px;}.paint-bordered .info { display: flex; justify-content: space-between; color: rgba(36, 41, 46, 0.7490196); background: #f9f9f9; margin: 0; padding: 10px 15px 10px; font-size: 12px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; line-height: 1.2;}.paint-bordered .info.header { border-bottom: 1px solid #dddddd;}.paint-bordered .info.footer { border-top: 1px solid #dddddd;}.paint-bordered .info .left { font-weight: bold;}.paint-bordered .info .right span:not(:last-child) { padding-right: 10px; margin-right: 10px; border-right: 1px solid rgba(36, 41, 46, 0.101960786);}.paint { display: block; width: 100%; padding: 10px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; color: #24292e; background-color: #ffffff;}.paint table { width: 100%; border-spacing: 0; border-collapse: separate; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 12px; line-height: 20px; tab-size: 4; color: inherit; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -ms-text-size-adjust: 100%; text-rendering: optimizeLegibility;}.paint td { padding: 0 10px; white-space: pre;}.paint .ln { width: 1px; min-width: 25px; box-sizing: content-box; text-align: right; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; color: #bebfbf; }.paint .ln::after { content: attr(data-ln);}.paint .hi { background-color: #fffbdd;}.paint .un { text-decoration: underline; }.paint .bo { font-weight: bold; }.paint .it { font-style: italic; } .paint .pt8 { color: #032f62; }.paint .pt17 { color: #d73a49; }.paint .pt4 { background: #f0fff4; }.paint .pt14 { color: #735c0f; }.paint .pt3 { background: #d73a49; }.paint .pt16 { color: #b31d28; }.paint .pt5 { background: #ffebda; }.paint .pt11 { color: #586069; }.paint .pt18 { color: #e36209; }.paint .pt19 { color: #f6f8fa; }.paint .pt12 { color: #6a737d; }.paint .pt6 { background: #ffeef0; }.paint .pt9 { color: #22863a; }.paint .pt10 { color: #242930; }.paint .pt7 { color: #005cc5; }.paint .pt2 { background: #b31d28; }.paint .pt20 { color: #fafbfc; }.paint .pt1 { background: #005cc5; }.paint .pt13 { color: #6f42c1; }.paint .pt15 { color: #959da5; }</style>');
document.write('<div class=\'paint-bordered\'><div class=\'paint\'><table><tr><td class=\'ln\' data-ln=\'1\'></td><td><span class=\'pt12\'>/// A hacky way to allocate/deallocate in rust stable (`alloc::heap` is still unstable)</span></td></tr><tr><td class=\'ln\' data-ln=\'2\'></td><td><span class=\'pt12\'>/// rust-lang/rfcs#1974</span></td></tr><tr><td class=\'ln\' data-ln=\'3\'></td><td><span class=\'pt12\'>/// https://github.com/rust-lang/rust/issues/27389</span></td></tr><tr><td class=\'ln\' data-ln=\'4\'></td><td><span class=\'pt12\'>///</span></td></tr><tr><td class=\'ln\' data-ln=\'5\'></td><td><span class=\'pt17\'>pub</span> <span class=\'pt17\'>fn</span> <span class=\'pt13\'>allocate</span>(<span class=\'pt10\'>length</span>: <span class=\'pt17\'>usize</span>) -> <span class=\'pt17\'>*mut</span> <span class=\'pt17\'>c_void</span> {</td></tr><tr><td class=\'ln\' data-ln=\'6\'></td><td> <span class=\'pt17\'>let</span> <span class=\'pt17\'>mut</span> v <span class=\'pt17\'>=</span> <span class=\'pt17\'>Vec::</span><span class=\'pt13\'>with_capacity</span>(length);</td></tr><tr><td class=\'ln\' data-ln=\'7\'></td><td> <span class=\'pt17\'>let</span> ptr <span class=\'pt17\'>=</span> v.<span class=\'pt13\'>as_mut_ptr</span>();</td></tr><tr><td class=\'ln\' data-ln=\'8\'></td><td> std<span class=\'pt17\'>::</span>mem<span class=\'pt17\'>::</span><span class=\'pt13\'>forget</span>(v);</td></tr><tr><td class=\'ln\' data-ln=\'9\'></td><td> ptr</td></tr><tr><td class=\'ln\' data-ln=\'10\'></td><td>}</td></tr><tr><td class=\'ln\' data-ln=\'11\'></td><td> </td></tr><tr><td class=\'ln\' data-ln=\'12\'></td><td><span class=\'pt17\'>fn</span> <span class=\'pt13\'>deallocate</span>(<span class=\'pt10\'>ptr</span>: *<span class=\'pt17\'>mut</span> c_void, <span class=\'pt10\'>length</span>: <span class=\'pt17\'>usize</span>) {</td></tr><tr><td class=\'ln\' data-ln=\'13\'></td><td> std<span class=\'pt17\'>::</span>mem<span class=\'pt17\'>::</span><span class=\'pt13\'>drop</span>(<span class=\'pt17\'>Vec::</span><span class=\'pt13\'>from_raw_parts</span>(ptr, <span class=\'pt7\'>0</span>, length));</td></tr><tr><td class=\'ln\' data-ln=\'14\'></td><td>}</td></tr></table></div></div>');