Skip to content

Commit

Permalink
Execution: Add stderr block
Browse files Browse the repository at this point in the history
Add a stderr block.
Pros:
  - we can make use of dbg macro in our code
Cons:
  - there's a limitation that the compile message also shows

Applies patches from rust-lang/mdBook#1315 since the original change
was not merged by rust-lang.

Signed-off-by: Alx-Lai <[email protected]>
  • Loading branch information
Alx-Lai committed Oct 6, 2024
1 parent 0fe2722 commit 6db1f67
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions theme/book.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,17 @@ function playground_text(playground, hidden = true) {
}

function run_rust_code(code_block) {
var result_block = code_block.querySelector(".result");
var result_stderr_block = code_block.querySelector(".result.stderr");
if (!result_stderr_block) {
result_stderr_block = document.createElement('code');
result_stderr_block.className = 'result stderr hljs nohighlight';

code_block.append(result_stderr_block);
}
var result_block = code_block.querySelector(".result.stdout");
if (!result_block) {
result_block = document.createElement('code');
result_block.className = 'result hljs language-bash';
result_block.className = 'result stdout hljs nohighlight';

code_block.append(result_block);
}
Expand All @@ -127,10 +134,13 @@ function playground_text(playground, hidden = true) {
edition = "2021";
}
var params = {
version: "stable",
optimize: "0",
backtrace: true,
channel: "stable",
code: text,
edition: edition
edition: edition,
mode: "debug",
tests: false,
crateType: "bin",
};

if (text.indexOf("#![feature") !== -1) {
Expand All @@ -141,7 +151,7 @@ function playground_text(playground, hidden = true) {

const playgroundModified = isPlaygroundModified(code_block);
const startTime = window.performance.now();
fetch_with_timeout("https://play.rust-lang.org/evaluate.json", {
fetch_with_timeout("https://play.rust-lang.org/execute", {
headers: {
'Content-Type': "application/json",
},
Expand All @@ -158,13 +168,15 @@ function playground_text(playground, hidden = true) {
"latency": (endTime - startTime) / 1000,
});

if (response.result.trim() === '') {
if (response.stdout.trim() === '') {
result_block.innerText = "No output";
result_block.classList.add("result-no-output");
} else {
result_block.innerText = response.result;
result_block.innerText = response.stdout;
result_block.classList.remove("result-no-output");
}

result_stderr_block.innerText = response.stderr;
})
.catch(error => {
const endTime = window.performance.now();
Expand Down

0 comments on commit 6db1f67

Please sign in to comment.