Skip to content

Commit 57a106f

Browse files
committed
feat: 修改flatbuffer产物编译
1 parent d602f06 commit 57a106f

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

flatbuffers/stylesheet.fbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ table Object {
6666
table DeclarationTuple {
6767
property_id:uint8;
6868
value:Value;
69+
flag:uint8;
6970
}
7071

7172
table Selector {

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
"format:rs": "cargo fmt",
5050
"run:rs": "cargo run",
5151
"format:source": "prettier . -w",
52-
"version": "napi version && conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
52+
"version": "napi version && conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",
53+
"flatbuffer": "flatc --rust -o ./src ./flatbuffers/stylesheet.fbs && flatc --cpp -o ./flatbuffers ./flatbuffers/stylesheet.fbs"
5354
},
5455
"packageManager": "pnpm@9.11.0",
5556
"repository": "https://github.com/NervJS/parse-css-to-stylesheet"

src/stylesheet_generated.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1714,6 +1714,7 @@ impl<'a> DeclarationTuple<'a> {
17141714
pub const VT_PROPERTY_ID: flatbuffers::VOffsetT = 4;
17151715
pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 6;
17161716
pub const VT_VALUE: flatbuffers::VOffsetT = 8;
1717+
pub const VT_FLAG: flatbuffers::VOffsetT = 10;
17171718

17181719
#[inline]
17191720
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
@@ -1726,6 +1727,7 @@ impl<'a> DeclarationTuple<'a> {
17261727
) -> flatbuffers::WIPOffset<DeclarationTuple<'bldr>> {
17271728
let mut builder = DeclarationTupleBuilder::new(_fbb);
17281729
if let Some(x) = args.value { builder.add_value(x); }
1730+
builder.add_flag(args.flag);
17291731
builder.add_value_type(args.value_type);
17301732
builder.add_property_id(args.property_id);
17311733
builder.finish()
@@ -1754,6 +1756,13 @@ impl<'a> DeclarationTuple<'a> {
17541756
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(DeclarationTuple::VT_VALUE, None)}
17551757
}
17561758
#[inline]
1759+
pub fn flag(&self) -> u8 {
1760+
// Safety:
1761+
// Created from valid Table for this object
1762+
// which contains a valid value in this slot
1763+
unsafe { self._tab.get::<u8>(DeclarationTuple::VT_FLAG, Some(0)).unwrap()}
1764+
}
1765+
#[inline]
17571766
#[allow(non_snake_case)]
17581767
pub fn value_as_string(&self) -> Option<String<'a>> {
17591768
if self.value_type() == Value::String {
@@ -1944,6 +1953,7 @@ impl flatbuffers::Verifiable for DeclarationTuple<'_> {
19441953
_ => Ok(()),
19451954
}
19461955
})?
1956+
.visit_field::<u8>("flag", Self::VT_FLAG, false)?
19471957
.finish();
19481958
Ok(())
19491959
}
@@ -1952,6 +1962,7 @@ pub struct DeclarationTupleArgs {
19521962
pub property_id: u8,
19531963
pub value_type: Value,
19541964
pub value: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
1965+
pub flag: u8,
19551966
}
19561967
impl<'a> Default for DeclarationTupleArgs {
19571968
#[inline]
@@ -1960,6 +1971,7 @@ impl<'a> Default for DeclarationTupleArgs {
19601971
property_id: 0,
19611972
value_type: Value::NONE,
19621973
value: None,
1974+
flag: 0,
19631975
}
19641976
}
19651977
}
@@ -1982,6 +1994,10 @@ impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> DeclarationTupleBuilder<'a, 'b,
19821994
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(DeclarationTuple::VT_VALUE, value);
19831995
}
19841996
#[inline]
1997+
pub fn add_flag(&mut self, flag: u8) {
1998+
self.fbb_.push_slot::<u8>(DeclarationTuple::VT_FLAG, flag, 0);
1999+
}
2000+
#[inline]
19852001
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> DeclarationTupleBuilder<'a, 'b, A> {
19862002
let start = _fbb.start_table();
19872003
DeclarationTupleBuilder {
@@ -2084,6 +2100,7 @@ impl core::fmt::Debug for DeclarationTuple<'_> {
20842100
ds.field("value", &x)
20852101
},
20862102
};
2103+
ds.field("flag", &self.flag());
20872104
ds.finish()
20882105
}
20892106
}

src/utils.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,10 +527,18 @@ pub fn convert_json_to_flatbuffer(json_str: &str) -> Result<Vec<u8>, serde_json:
527527
let property_id = decl_array[0].as_u64().unwrap() as u8;
528528

529529
let (value_type, value) = process_flatbuffer_value(&mut builder, &decl_array[1]);
530+
531+
let mut property_flag = 0;
532+
// 判断下标2是否存在
533+
if decl_array.len() == 3 {
534+
property_flag = decl_array[2].as_u64().unwrap() as u8;
535+
}
536+
530537
styles::DeclarationTuple::create(&mut builder, &styles::DeclarationTupleArgs {
531538
property_id: property_id,
532539
value_type: value_type,
533540
value: Some(value),
541+
flag: property_flag
534542
})
535543
}).collect();
536544
let declarations = builder.create_vector(&declarations);

0 commit comments

Comments
 (0)