paint 0.1.0

A sublime-like syntax highlighter
1
2
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>) -&gt; <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>&#10;</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>');