本書に下記のとおり誤りがございました。お詫びして訂正いたします。
アプリケーションをWasabiOSで動かすためには、cargo buildコマンドでビルドしたアプリケーションのバイナリを、WasabiOSが提供するrun_with_app.shというスクリプトを使用して走らせる必要があります。これらを自動的に行ってくれる便利なシェルスクリプトを用意したので、以下のスクリプトを自分のプロジェクトに追加してください。または、d0iasm/saba/run_on_wasabi.shからコピーすることもできます。
アプリケーションをWasabiOSで動かすには、cargo buildコマンドでビルドしたアプリケーションのバイナリを、WasabiOSが提供するrun_with_app.shというスクリプトを使用して走らせる必要があります。これらを自動的に行うシェルスクリプトを用意したので、以下のスクリプトを後ほどcargoコマンドによって作成するプロジェクトのトップディレクトリに追加してください。d0iasm/saba/run_on_wasabi.shからコピーもできます。
また、もしスクリプトが途中で失敗したら、rm -rf buildなどによりダウンロードしたWasabiOSのソースコードを削除してみてください。
もしスクリプトが途中で失敗したら、rm -rf buildなどでダウンロードしたWasabiOSのソースコードを削除してください。環境によってはwgetの導入が必要です。
「3&b= 456」の半角スペースを削除
間の矢印を削除し半角スペースに
「oken());」の部分を太字に
「loating_digit」の部分を太字に
「as f64」の部分を太字に
├── layout_object.rs
├── layout_point.rs
├── layout_size.rs
└── layout_view.rs
├── layout_object.rs
└── layout_view.rs
if current.borrow().first_child().is_some() { ── ❹
let mut last_sibiling = current.borrow().first_child();
loop { ── ❺
last_sibiling = match last_sibiling {
Some(ref node) => {
if node.borrow().next_sibling().is_some() {
node.borrow().next_sibling()
} else {
break;
}
}
None => unimplemented!("last_sibiling should be Some"),
};
}
last_sibiling
.unwrap()
.borrow_mut()
.set_next_sibling(Some(node.clone())); ── ❻
node.borrow_mut().set_previous_sibling(Rc::downgrade(
¤t
.borrow()
.first_child()
.expect("failed to get a first child"),
))
} else { ── ❼
current.borrow_mut().set_first_child(Some(node.clone())); ── ❽
}
current.borrow_mut().set_last_child(Rc::downgrade(&node)); ── ❾
node.borrow_mut().set_parent(Rc::downgrade(¤t)); ── ❿
self.stack_of_open_elements.push(node); ── ⓫
}
}
if current.borrow().first_child().is_some() { ── ❹
let mut last_sibling = current.borrow().first_child(); ◀「sibling」のスペルを修正
loop { ── ❺
last_sibling = match last_sibling { ◀「sibling」のスペルを修正
Some(ref node) => {
if node.borrow().next_sibling().is_some() {
node.borrow().next_sibling()
} else {
break;
}
}
None => unimplemented!("last_sibling should be Some"), ◀「sibling」のスペルを修正
};
}
last_sibling ◀「sibling」のスペルを修正
.as_ref() ◀追加
.unwrap()
.borrow_mut()
.set_next_sibling(Some(node.clone())); ── ❻
node.borrow_mut().set_previous_sibling(Rc::downgrade(
&last_sibling.expect("last_sibling should be Some") ◀変更
))
} else { ── ❼
current.borrow_mut().set_first_child(Some(node.clone())); ── ❽
}
current.borrow_mut().set_last_child(Rc::downgrade(&node)); ── ❾
node.borrow_mut().set_parent(Rc::downgrade(¤t)); ── ❿
self.stack_of_open_elements.push(node); ── ⓫
}
}
if current.borrow().first_child().is_some() { ── ❺
current
.borrow()
.first_child()
.unwrap()
.borrow_mut()
.set_next_sibling(Some(node.clone())); ── ❻
node.borrow_mut().set_previous_sibling(Rc::downgrade(
¤t
.borrow()
.first_child()
.expect("failed to get a first child"),
));
if current.borrow().first_child().is_some() { ── ❺
current
.borrow()
.first_child()
.unwrap()
.borrow_mut()
.set_next_sibling(Some(node.clone())); ── ❻
◀削除
if self.input[self.pos].is_ascii_alphanumeric() || self.input[self.pos] == '$' {
if self.input[self.pos].is_ascii_alphanumeric()
|| self.input[s elf.pos] == '_' || self.input[self.pos] == '$' { ◀「|| self.input[s elf.pos] == '_'」を追加
|| self.input[s elf.pos] == '_' || self.input[self.pos] == '$' {
|| self.input[self.pos] == '_' || self.input[self.pos] == '$' {
◀「s elf」から半角スペースを削除