refactor: Change to Rust's CStr
This commit is contained in:
@@ -1,19 +1,15 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
use cstr_core::cstr;
|
||||
use kos::{dll::Console, threads::exit};
|
||||
|
||||
extern crate alloc;
|
||||
|
||||
#[no_mangle]
|
||||
pub fn kol_main() {
|
||||
let header = cstr!("Rust!");
|
||||
let string = "Hi from Rust!";
|
||||
|
||||
let con_lib = Console::import(None).unwrap();
|
||||
con_lib.init(u32::MAX, u32::MAX, u32::MAX, u32::MAX, header);
|
||||
con_lib.write_string(string);
|
||||
con_lib.init(u32::MAX, u32::MAX, u32::MAX, u32::MAX, c"Rust!");
|
||||
con_lib.write_string("Hi from Rust!");
|
||||
con_lib.exit(false);
|
||||
|
||||
exit();
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
use cstr_core::{cstr, CStr};
|
||||
|
||||
use kos::{
|
||||
graphics::{display_message, Color, Dot, Size},
|
||||
input::fetch_key,
|
||||
@@ -13,14 +11,14 @@ use kos::{
|
||||
},
|
||||
};
|
||||
|
||||
const HEADER: &CStr = cstr!("Dark Mode Demo");
|
||||
const TEXT: [&CStr; 6] = [
|
||||
cstr!("Lorem ipsum dolor sit amet,"),
|
||||
cstr!("semper et rutrum placerat,"),
|
||||
cstr!("Integer sed diam commodo quam varius"),
|
||||
cstr!("Sed finibus urna sit amet felis"),
|
||||
cstr!("vestibulum elementum. Maecenas at feugiat lacus"),
|
||||
cstr!("tristique et sit amet tortor."),
|
||||
const HEADER: &'static CStr = c"Dark Mode Demo";
|
||||
const TEXT: [&'static CStr; 6] = [
|
||||
c"Lorem ipsum dolor sit amet,",
|
||||
c"semper et rutrum placerat,",
|
||||
c"Integer sed diam commodo quam varius",
|
||||
c"Sed finibus urna sit amet felis",
|
||||
c"vestibulum elementum. Maecenas at feugiat lacus",
|
||||
c"tristique et sit amet tortor.",
|
||||
];
|
||||
const BTN: u32 = 42;
|
||||
const WINDOW_SIZE: Size = Size {
|
||||
@@ -66,9 +64,9 @@ fn draw_window(invert: bool) {
|
||||
Dot { x: 20, y: 310 },
|
||||
Color::rgb(255, 255, 255),
|
||||
if invert {
|
||||
cstr!("Light mode")
|
||||
c"Light mode"
|
||||
} else {
|
||||
cstr!("Dark mode")
|
||||
c"Dark mode"
|
||||
},
|
||||
None,
|
||||
);
|
||||
|
@@ -1,8 +1,8 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
use cstr_core::{cstr, CStr};
|
||||
|
||||
use alloc::ffi::CString;
|
||||
use core::ffi::CStr;
|
||||
use kos::{
|
||||
graphics::{display_message, Color, Dot, Size},
|
||||
input::fetch_key,
|
||||
@@ -14,8 +14,8 @@ use kos::{
|
||||
},
|
||||
};
|
||||
|
||||
const HEADER: &CStr = cstr!("Hey Kolibri");
|
||||
const MSG: &CStr = cstr!("Hello from Rust!");
|
||||
const HEADER: &CStr = c"Hey Kolibri";
|
||||
const MSG: &CStr = c"Hello from Rust!";
|
||||
const BTN: u32 = 42;
|
||||
|
||||
#[macro_use]
|
||||
@@ -45,16 +45,18 @@ fn draw_window(c: usize) {
|
||||
);
|
||||
|
||||
let btn_str = match get_lang() {
|
||||
Lang::German => format!("Taste gedrückt: {} mal\0", c),
|
||||
Lang::Russian => format!("Кнопка нажата: {} раз\0", c),
|
||||
Lang::French => format!("Button enfoncé : {} fois\0", c),
|
||||
_ => format!("Button pressed: {} times\0", c),
|
||||
Lang::German => format!("Taste gedrückt: {} mal", c),
|
||||
Lang::Russian => format!("Кнопка нажата: {} раз", c),
|
||||
Lang::French => format!("Button enfoncé : {} fois", c),
|
||||
_ => format!("Button pressed: {} times", c),
|
||||
};
|
||||
|
||||
display_message(
|
||||
Dot { x: 10, y: 30 },
|
||||
Color::rgb(0, 0, 0),
|
||||
CStr::from_bytes_with_nul(btn_str.as_bytes()).unwrap_or(cstr!("String error")),
|
||||
CString::new(btn_str.as_bytes())
|
||||
.expect("CString error")
|
||||
.as_c_str(),
|
||||
None,
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user