mirror of
https://github.com/servo/servo.git
synced 2025-08-21 05:15:33 +01:00
Add binding functions for length and item getter of DeclarationBlock
This commit is contained in:
parent
0b0ff2b152
commit
1af2edf190
3 changed files with 38 additions and 2 deletions
|
@ -7,6 +7,7 @@ use cssparser::{Parser, ToCss};
|
|||
use env_logger;
|
||||
use euclid::Size2D;
|
||||
use parking_lot::RwLock;
|
||||
use std::fmt::Write;
|
||||
use std::mem::transmute;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use style::arc_ptr_eq;
|
||||
|
@ -474,6 +475,25 @@ pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
|||
}
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_DeclarationBlock_Count(declarations: RawServoDeclarationBlockBorrowed) -> u32 {
|
||||
let declarations = RwLock::<PropertyDeclarationBlock>::as_arc(&declarations);
|
||||
declarations.read().declarations.len() as u32
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_DeclarationBlock_GetNthProperty(declarations: RawServoDeclarationBlockBorrowed,
|
||||
index: u32, result: *mut nsAString) -> bool {
|
||||
let declarations = RwLock::<PropertyDeclarationBlock>::as_arc(&declarations);
|
||||
if let Some(&(ref decl, _)) = declarations.read().declarations.get(index as usize) {
|
||||
let result = unsafe { result.as_mut().unwrap() };
|
||||
write!(result, "{}", decl.name()).unwrap();
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_CSSSupports(property: *const nsACString, value: *const nsACString) -> bool {
|
||||
let property = unsafe { property.as_ref().unwrap().as_str_unchecked() };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue