Преглед изворни кода

fixed a couple of things. Adding MaterialPropertyString

David Golembiowski пре 5 година
родитељ
комит
a286506c23
1 измењених фајлова са 27 додато и 3 уклоњено
  1. 27 3
      port/assimp_rs/src/structs/string.rs

+ 27 - 3
port/assimp_rs/src/structs/string.rs

@@ -1,13 +1,16 @@
-pub const MAXLEN: u32 = 1024;
+pub const MAXLEN: usize = 1024;
 
+/// Want to consider replacing `Vec<char>`
+/// with a comparable definition at 
+/// https://doc.rust-lang.org/src/alloc/string.rs.html#415-417
 #[derive(Clone, Debug)]
 struct Str {
-    length: u32,
+    length: usize,
     data: Vec<char>
 }
 
 impl Str {
-    pub fn new(len_u32: u32, data_string: String) -> Str {
+    pub fn new(len_u32: usize, data_string: String) -> Str {
         Str {
             length: len_u32,
             data: data_string.chars().collect()
@@ -15,3 +18,24 @@ impl Str {
     }
 }
 
+/// MaterialPropertyStr
+/// The size of length is truncated to 4 bytes on a 64-bit platform when used as a 
+/// material property (see MaterialSystem.cpp, as aiMaterial::AddProperty() ).
+#[derive(Clone, Debug)]
+struct MaterialPropertyStr {
+    length: usize,
+    data: Vec<char>
+}
+
+
+impl MaterialPropertyStr {
+    pub fn new(len_u32: usize, data_string: String) -> MaterialPropertyStr {
+        MaterialPropertyStr {
+            length: len_u32,
+            data: data_string.chars().collect()
+        }
+    }
+}
+
+   
+