mirror of
https://github.com/penpot/penpot.git
synced 2025-05-02 21:55:54 +02:00
💄 Change to more idiomatic code in main.rs functions
This commit is contained in:
parent
c2ae58bf08
commit
e7b74939cb
1 changed files with 16 additions and 17 deletions
|
@ -26,14 +26,14 @@ pub(crate) static mut STATE: Option<Box<State>> = None;
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! with_state {
|
macro_rules! with_state {
|
||||||
($state:ident, $block:block) => {
|
($state:ident, $block:block) => {{
|
||||||
let $state = unsafe {
|
let $state = unsafe {
|
||||||
#[allow(static_mut_refs)]
|
#[allow(static_mut_refs)]
|
||||||
STATE.as_mut()
|
STATE.as_mut()
|
||||||
}
|
}
|
||||||
.expect("Got an invalid state pointer");
|
.expect("Got an invalid state pointer");
|
||||||
$block
|
$block
|
||||||
};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
@ -159,7 +159,7 @@ pub extern "C" fn use_shape(a: u32, b: u32, c: u32, d: u32) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn set_parent(a: u32, b: u32, c: u32, d: u32) {
|
pub extern "C" fn set_parent(a: u32, b: u32, c: u32, d: u32) {
|
||||||
with_current_shape!(state, |shape: &mut Shape| {
|
with_current_shape!(state, |shape: &mut Shape| {
|
||||||
let id = uuid_from_u32_quartet(a, b, c, d);
|
let id = uuid_from_u32_quartet(a, b, c, d);
|
||||||
shape.set_parent(id);
|
shape.set_parent(id);
|
||||||
|
@ -181,7 +181,7 @@ pub extern "C" fn set_shape_bool_type(raw_bool_type: u8) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn set_shape_type(shape_type: u8) {
|
pub extern "C" fn set_shape_type(shape_type: u8) {
|
||||||
with_current_shape!(state, |shape: &mut Shape| {
|
with_current_shape!(state, |shape: &mut Shape| {
|
||||||
shape.set_shape_type(Type::from(shape_type));
|
shape.set_shape_type(Type::from(shape_type));
|
||||||
});
|
});
|
||||||
|
@ -256,12 +256,9 @@ pub extern "C" fn store_image(a: u32, b: u32, c: u32, d: u32) {
|
||||||
let id = uuid_from_u32_quartet(a, b, c, d);
|
let id = uuid_from_u32_quartet(a, b, c, d);
|
||||||
let image_bytes = mem::bytes();
|
let image_bytes = mem::bytes();
|
||||||
|
|
||||||
match state.render_state().add_image(id, &image_bytes) {
|
if let Err(msg) = state.render_state().add_image(id, &image_bytes) {
|
||||||
Err(msg) => {
|
|
||||||
eprintln!("{}", msg);
|
eprintln!("{}", msg);
|
||||||
}
|
}
|
||||||
_ => {}
|
|
||||||
}
|
|
||||||
|
|
||||||
mem::free_bytes();
|
mem::free_bytes();
|
||||||
});
|
});
|
||||||
|
@ -271,8 +268,8 @@ pub extern "C" fn store_image(a: u32, b: u32, c: u32, d: u32) {
|
||||||
pub extern "C" fn is_image_cached(a: u32, b: u32, c: u32, d: u32) -> bool {
|
pub extern "C" fn is_image_cached(a: u32, b: u32, c: u32, d: u32) -> bool {
|
||||||
with_state!(state, {
|
with_state!(state, {
|
||||||
let id = uuid_from_u32_quartet(a, b, c, d);
|
let id = uuid_from_u32_quartet(a, b, c, d);
|
||||||
return state.render_state().has_image(&id);
|
state.render_state().has_image(&id)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
@ -394,8 +391,8 @@ pub extern "C" fn propagate_modifiers() -> *mut u8 {
|
||||||
|
|
||||||
with_state!(state, {
|
with_state!(state, {
|
||||||
let result = shapes::propagate_modifiers(state, entries);
|
let result = shapes::propagate_modifiers(state, entries);
|
||||||
return mem::write_vec(result);
|
mem::write_vec(result)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
@ -409,10 +406,12 @@ pub extern "C" fn set_structure_modifiers() {
|
||||||
|
|
||||||
with_state!(state, {
|
with_state!(state, {
|
||||||
for entry in entries {
|
for entry in entries {
|
||||||
if !state.structure.contains_key(&entry.parent) {
|
state.structure.entry(entry.parent).or_insert_with(Vec::new);
|
||||||
state.structure.insert(entry.parent, Vec::new());
|
state
|
||||||
}
|
.structure
|
||||||
state.structure.get_mut(&entry.parent).unwrap().push(entry);
|
.get_mut(&entry.parent)
|
||||||
|
.expect("Parent not found for entry")
|
||||||
|
.push(entry);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue