Started with Rust Grease your rusty brain. 1, 2, 3. 선배님을 만난다 선배님이 추천 한 책을 산다. https://wikibook.co.kr/rust/ Install RUST Install Rust Jupyter Kernel 4. Jupyter 에서 rust 를 즐긴다. and create repo https://github.com/rust-nori/hello
becky2sawyer Updated log
YZLoh Updated
Please make a rust crate for erlpack
AngeloCore Updated
Hey awesome project @askfiy I followed your configuration, however I couldn't get it running with Mason and rust-tools/rust analyzer. Could you help me with the configuration or include the configuration directly into the project.
mauricekraus Updated
A dump of articles talking about possible optimization strategies. Achieving warp speed in Rust (blog format, gist source) Note, has a link to profiling with perf and flamegraph which is of interest. A couple of interesting tidbits from that: If you’re creating a tree structure that then becomes immutable, like with an AST, you might want to consider using a TypedArena to get tighter control over memory use. TypedArena is still unstable though, and it increases complexity, so it’s not suitable for all use-cases. can we use this somehow? Are immutable ASTs even allowed in the context of Python? (i.e how would the ast python module work? How would libraries like Ruff work if the tree is immutable?)
Rust may become one of the core officially maintained interfaces, but we still need an implementation proposal. A potential candidate for this job can find guidelines and recommendations for new bindings in our docs here. If you have questions or recommendations for that interface - as anyone on Discord or one of the maintainers here.
Setup a WASM compilation stage for client-side Rust code
I have some ideas for integrations with xlOil which would be a lot easier with Rust. I could go the pyIodide route but directly from C++ would be better. I haven't used C++ in 25 years so I don't know anything about that side. Would be great if we could collaborate on this.
snth Updated
Comprehensive Rust
usmanakram232 Updated
struct Pistol { kind: String, country: String, capacity: u8, weight: f32, // in kg } enum Weapon { Beretta(Pistol), // kind 418 by Italian 8 (7+1) rounds weigh 0.31 kg Walther(Pistol), // PPK by German pistol 8 rounds weigh 0.59 kg } #[derive(Debug)] struct Agent { name: String, target: u8, active: bool, } impl Agent { fn report(&self, extra: u8) -> String { let target = if self.active { self.target + extra } else { self.target }; format!( "Hello, {name}! You got {target} targets to elimate.", name = self.name, target = target ) } fn weapon(&self, weapon: Weapon) -> String { match weapon { Weapon::Beretta(p) => format!("{name} selected Beretta {pistol}. Made in {country}, weigh {weight} kg., with {capacity} rounds." ,name=self.name, pistol=p.kind, country=p.country, weight=p.weight, capacity=p.capacity), Weapon::Walther(p) => format!("Oh, that is a {country} made Walter {pistol}, Agent {name}! It weighs {weight} and has {capacity} rounds." ,name=self.name, pistol=p.kind, country=p.country, weight=p.weight, capacity=p.capacity ), } } } fn main() { let agent = Agent { name: String::from("James Bond"), target: 7, active: true, }; println!("{:?}", agent.report(2)); let beratta = Weapon::Beretta(Pistol { kind: String::from("418"), country: String::from("Italy"), capacity: 8, weight: 0.31, }); let walther = Weapon::Walther(Pistol { kind: "PPK".to_string(), country: "Germany".to_string(), capacity: 8, weight: 0.59, }); for pistol in [beratta, walther] { println!("{}", agent.weapon(pistol)) } }
Proteusiq Updated
Clippy generate a list of weaks, not so hard to fix. <problems> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/geo_extension.rs</file> <line>431</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/geo_extension.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>This boolean expression can be simplified</description> <highlighted_element>!(geo_extension &lt;= geo_extension2)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>34</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/geo_extension.rs</file> <line>432</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/geo_extension.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>This boolean expression can be simplified</description> <highlighted_element>!(geo_extension &lt; geo_extension2)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>33</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>15</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `CAM` contains a capitalized acronym</description> <highlighted_element>CAM</highlighted_element> <language>Rust</language> <offset>4</offset> <length>3</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>16</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `DENM` contains a capitalized acronym</description> <highlighted_element>DENM</highlighted_element> <language>Rust</language> <offset>4</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>17</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `CPM` contains a capitalized acronym</description> <highlighted_element>CPM</highlighted_element> <language>Rust</language> <offset>4</offset> <length>3</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>18</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `INFO` contains a capitalized acronym</description> <highlighted_element>INFO</highlighted_element> <language>Rust</language> <offset>4</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>19</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `MAP` contains a capitalized acronym</description> <highlighted_element>MAP</highlighted_element> <language>Rust</language> <offset>4</offset> <length>3</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs</file> <line>20</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/message_type.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Name `SPAT` contains a capitalized acronym</description> <highlighted_element>SPAT</highlighted_element> <language>Rust</language> <offset>4</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/mod.rs</file> <line>70</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Use of `unwrap_or` followed by a function call</description> <highlighted_element>unwrap_or(&quot;+&quot;.to_string())</highlighted_element> <language>Rust</language> <offset>23</offset> <length>26</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/mod.rs</file> <line>73</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/mqtt/topic/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Struct update has no effect, all the fields in the struct have already been specified</description> <highlighted_element>Default::default()</highlighted_element> <language>Rust</language> <offset>14</offset> <length>18</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>28</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unused import: `crate::reception::exchange::collective_perception_message::CollectivePerceptionMessage`</description> <highlighted_element>crate::reception::exchange::collective_perception_message::CollectivePerceptionMessage</highlighted_element> <language>Rust</language> <offset>4</offset> <length>86</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>29</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unused import: `crate::reception::exchange::cooperative_awareness_message::CooperativeAwarenessMessage`</description> <highlighted_element>crate::reception::exchange::cooperative_awareness_message::CooperativeAwarenessMessage</highlighted_element> <language>Rust</language> <offset>4</offset> <length>86</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>30</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unused import: `crate::reception::exchange::decentralized_environmental_notification_message::DecentralizedEnvironmentalNotificationMessage`</description> <highlighted_element>crate::reception::exchange::decentralized_environmental_notification_message::DecentralizedEnvironme...</highlighted_element> <language>Rust</language> <offset>4</offset> <length>123</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>31</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unused import: `crate::reception::exchange::map_extended_message::MAPExtendedMessage`</description> <highlighted_element>crate::reception::exchange::map_extended_message::MAPExtendedMessage</highlighted_element> <language>Rust</language> <offset>4</offset> <length>68</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>32</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unused import: `crate::reception::exchange::signal_phase_and_timing_extended_message::SignalPhaseAndTimingExtendedMessage`</description> <highlighted_element>crate::reception::exchange::signal_phase_and_timing_extended_message::SignalPhaseAndTimingExtendedMe...</highlighted_element> <language>Rust</language> <offset>4</offset> <length>105</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>38</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>This function has too many arguments (8/7)</description> <highlighted_element>pub async fn run&lt;T: Analyser&gt;( mqtt_host: &amp;str, mqtt_port: u16, mqtt_client_id: &amp;str, ...</highlighted_element> <language>Rust</language> <offset>0</offset> <length>275</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>149</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Very complex type used. Consider factoring parts into `type` definitions</description> <highlighted_element>( Receiver&lt;Item&lt;Exchange&gt;&gt;, Receiver&lt;(Item&lt;Exchange&gt;, Option&lt;Cause&gt;)&gt;, Receiver&lt;Item&lt;Inf...</highlighted_element> <language>Rust</language> <offset>5</offset> <length>133</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>264</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Local variable doesn't need to be boxed here</description> <highlighted_element>value</highlighted_element> <language>Rust</language> <offset>16</offset> <length>5</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>271</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Very complex type used. Consider factoring parts into `type` definitions</description> <highlighted_element>(Receiver&lt;(Item&lt;Exchange&gt;, Option&lt;Cause&gt;)&gt;, JoinHandle&lt;()&gt;)</highlighted_element> <language>Rust</language> <offset>5</offset> <length>59</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>302</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Very complex type used. Consider factoring parts into `type` definitions</description> <highlighted_element>( Receiver&lt;Item&lt;Exchange&gt;&gt;, Receiver&lt;(Item&lt;Exchange&gt;, Option&lt;Cause&gt;)&gt;, JoinHandle&lt;()&gt;, )</highlighted_element> <language>Rust</language> <offset>5</offset> <length>100</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs</file> <line>388</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/pipeline.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Writing `&amp;Vec` instead of `&amp;[_]` involves a new object where a slice will do</description> <highlighted_element>&amp;Vec&lt;String&gt;</highlighted_element> <language>Rust</language> <offset>43</offset> <length>12</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/collective_perception_message.rs</file> <line>37</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/collective_perception_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Manual implementation of `Option::map`</description> <highlighted_element>if let Some(originating_vehicle_container) = &amp;station_data_container.originating...</highlighted_element> <language>Rust</language> <offset>16</offset> <length>268</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs</file> <line>155</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>This function has too many arguments (10/7)</description> <highlighted_element>pub fn new_traffic_condition( station_id: u32, originating_station_id: u32, ...</highlighted_element> <language>Rust</language> <offset>4</offset> <length>406</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs</file> <line>183</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>This function has too many arguments (11/7)</description> <highlighted_element>pub fn new( station_id: u32, originating_station_id: u32, event_position: Re...</highlighted_element> <language>Rust</language> <offset>4</offset> <length>407</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs</file> <line>203</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/decentralized_environmental_notification_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Struct update has no effect, all the fields in the struct have already been specified</description> <highlighted_element>Default::default()</highlighted_element> <language>Rust</language> <offset>22</offset> <length>18</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>24</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="ERROR" attribute_key="WRONG_REFERENCES_ATTRIBUTES">External Linter</problem_class> <hints /> <description>You are deriving `Hash` but have implemented `PartialEq` explicitly</description> <highlighted_element>Hash</highlighted_element> <language>Rust</language> <offset>40</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>232</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.left, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>27</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>233</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.straight, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>31</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>234</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.right, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>29</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>236</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.ingress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>31</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>237</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.egress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>30</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>245</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.is_vehicle_lane.unwrap(), true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>47</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>246</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.is_bus_lane.unwrap(), false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>44</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>247</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.is_bike_lane.unwrap(), false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>45</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>254</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(connection_one.caution.unwrap(), true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>49</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>260</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(connection_two.caution.unwrap(), false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>50</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>338</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.left, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>27</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>339</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.straight, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>31</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>340</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.right, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>29</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>342</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.ingress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>31</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>343</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane.egress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>30</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>371</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane2.left, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>28</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>372</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane2.straight, true)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>32</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>373</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane2.right, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>30</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>375</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane2.ingress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>32</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs</file> <line>376</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/map_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(lane2.egress, false)</highlighted_element> <language>Rust</language> <offset>16</offset> <length>31</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs</file> <line>66</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Casting the result of `i16::abs()` to u32</description> <highlighted_element>x_speed.abs()</highlighted_element> <language>Rust</language> <offset>6</offset> <length>13</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs</file> <line>66</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Casting the result of `i16::abs()` to u32</description> <highlighted_element>y_speed.abs()</highlighted_element> <language>Rust</language> <offset>38</offset> <length>13</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs</file> <line>129</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Used `assert_eq!` with a literal bool</description> <highlighted_element>assert_eq!(MovingMobileStub {}.stopped(), false)</highlighted_element> <language>Rust</language> <offset>8</offset> <length>48</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile_perceived_object.rs</file> <line>20</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile_perceived_object.rs" /> <problem_class id="RsExternalLinter" severity="ERROR" attribute_key="WRONG_REFERENCES_ATTRIBUTES">External Linter</problem_class> <hints /> <description>You are deriving `Hash` but have implemented `PartialEq` explicitly</description> <highlighted_element>Hash</highlighted_element> <language>Rust</language> <offset>23</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile_perceived_object.rs</file> <line>124</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mobile_perceived_object.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return cpm_position .get_destination(x_offset_meters, heading_in_degrees) .get_desti...</highlighted_element> <language>Rust</language> <offset>4</offset> <length>168</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>122</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return (self.timeout() - now()) / 1000</highlighted_element> <language>Rust</language> <offset>8</offset> <length>38</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>148</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;cam&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>426</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>173</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;cam&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>905</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>218</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;cam&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>1846</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>298</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;denm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>538</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>327</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;denm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>1142</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>384</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;denm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>2742</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>501</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot;{ &quot;type&quot;: &quot;cpm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.1.3&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>871</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>532</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot;{ &quot;type&quot;: &quot;cpm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.1.3&quot;,...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>2687</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>605</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot;{ &quot;type&quot;: &quot;cpm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.1.3&quot;,...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>6021</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>754</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;cam&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>396</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>778</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;denm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>540</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>807</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;denm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid14&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>547</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs</file> <line>836</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/mod.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return r#&quot; { &quot;type&quot;: &quot;cpm&quot;, &quot;origin&quot;: &quot;self&quot;, &quot;version&quot;: &quot;1.0.0&quot;, &quot;source_uuid&quot;: &quot;uuid1&quot;, ...</highlighted_element> <language>Rust</language> <offset>8</offset> <length>702</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/signal_phase_and_timing_extended_message.rs</file> <line>23</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/signal_phase_and_timing_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="ERROR" attribute_key="WRONG_REFERENCES_ATTRIBUTES">External Linter</problem_class> <hints /> <description>You are deriving `Hash` but have implemented `PartialEq` explicitly</description> <highlighted_element>Hash</highlighted_element> <language>Rust</language> <offset>40</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/signal_phase_and_timing_extended_message.rs</file> <line>96</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/exchange/signal_phase_and_timing_extended_message.rs" /> <problem_class id="RsExternalLinter" severity="ERROR" attribute_key="WRONG_REFERENCES_ATTRIBUTES">External Linter</problem_class> <hints /> <description>You are deriving `Hash` but have implemented `PartialEq` explicitly</description> <highlighted_element>Hash</highlighted_element> <language>Rust</language> <offset>33</offset> <length>4</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/information.rs</file> <line>83</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/information.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Single-character string constant used as pattern</description> <highlighted_element>&quot;_&quot;</highlighted_element> <language>Rust</language> <offset>66</offset> <length>3</length> </problem> <problem> <file>file://$PROJECT_DIR$/rust/libits-client/src/reception/mortal.rs</file> <line>24</line> <module>its-client</module> <entry_point TYPE="file" FQNAME="file://$PROJECT_DIR$/rust/libits-client/src/reception/mortal.rs" /> <problem_class id="RsExternalLinter" severity="WEAK WARNING" attribute_key="INFO_ATTRIBUTES">External Linter</problem_class> <hints /> <description>Unneeded `return` statement</description> <highlighted_element>return (self.timeout() - now()) / 1000</highlighted_element> <language>Rust</language> <offset>8</offset> <length>38</length> </problem> </problems>
tigroo Updated bug Rust
We need the ability to invoke rust functions from fender code, ideally from a precompiled binary but this might not be possible.
Redempt Updated
Hi! I've been cobbling together an end to end example of serializing deeply nested Rust structs through arrow2_convert to parquet and back (using their complex example with the fixed size buffers removed since fixed sized types are not currently implemented in arrow2). I've reproduced the relevant code from the arrow2_convert complex_example.rs example, without fixed sized types. I'm able to create a Vec, convert to Arrow, and serialize the result to a buffer of Parquet bytes. Metadata + statistics reading back out of the buffer appears fine, but when I iterate through the chunks, I get an OutOfSpec error: OutOfSpec("The children must have an equal number of values.\n However, the values at index 1 have a length of 9, which is different from values at index 0, 6.")', I have a feeling this is just a serialization misuse on my end that's getting propogated downstream. Attempting to read the intermediate Parquet file with Pyarrow results in an OSError: Malformed levels. min: 0 max: 3 out of range. Max Level: 2, which again points to a serialization error. My suspicion is that I'm not defining the row groups (RowGroupIterator) correctly, specifically the encodings, which I have as a vec![vec![Encoding::Plain; 25]]. I'm happy to contribute this back as a test case after we get it working; I think it is a common usecase that'd be valuable to document. Thanks for the help! Deeply Nested Structs & arrow2_convert implementation /// Complex example that uses the following features: /// /// - Deeply Nested structs and lists /// - Custom types use std::borrow::Borrow; use std::sync::Arc; use arrow2::array::*; use arrow2::chunk::Chunk; use arrow2::datatypes::{Schema, Field}; use arrow2::io::parquet::read; use arrow2::io::parquet::write::{FileWriter, Encoding, RowGroupIterator, Version, ZstdLevel, CompressionOptions, WriteOptions}; use arrow2_convert::deserialize::{arrow_array_deserialize_iterator, TryIntoCollection}; use arrow2_convert::serialize::{TryIntoArrow, ArrowSerialize}; use arrow2_convert::ArrowField; #[derive(Debug, Clone, PartialEq, ArrowField)] pub struct Root { name: Option<String>, is_deleted: bool, a1: Option<f64>, a2: i64, // binary a3: Option<Vec<u8>>, // date32 a4: chrono::NaiveDate, // timestamp(ns, None) a5: chrono::NaiveDateTime, // timestamp(ns, None) a6: Option<chrono::NaiveDateTime>, // array of date times date_time_list: Vec<chrono::NaiveDateTime>, // optional list array of optional strings nullable_list: Option<Vec<Option<String>>>, // optional list array of required strings required_list: Vec<Option<String>>, // custom type custom: CustomType, // custom optional type nullable_custom: Option<CustomType>, // vec custom type custom_list: Vec<CustomType>, // nested struct child: Child, // int 32 array int32_array: Vec<i32>, // large binary #[arrow_field(type = "arrow2_convert::field::LargeBinary")] large_binary: Vec<u8>, // fixed size binary // #[arrow_field(type = "arrow2_convert::field::FixedSizeBinary<3>")] fixed_size_binary: Vec<u8>, // large string #[arrow_field(type = "arrow2_convert::field::LargeString")] large_string: String, // large vec #[arrow_field(type = "arrow2_convert::field::LargeVec<i64>")] large_vec: Vec<i64>, // fixed size vec // #[arrow_field(type = "arrow2_convert::field::FixedSizeVec<i64, 3>")] fixed_size_vec: Vec<i64>, } #[derive(Debug, Clone, PartialEq, Eq, ArrowField)] pub struct Child { a1: i64, a2: String, // nested struct array child_array: Vec<ChildChild>, } #[derive(Debug, Clone, PartialEq, Eq, ArrowField)] pub struct ChildChild { a1: i32, bool_array: Vec<bool>, int64_array: Vec<i64>, } #[derive(Debug, Clone, PartialEq, Eq)] /// A newtype around a u64 pub struct CustomType(u64); /// To use with Arrow three traits need to be implemented: /// - ArrowField /// - ArrowSerialize /// - ArrowDeserialize impl arrow2_convert::field::ArrowField for CustomType { type Type = Self; #[inline] fn data_type() -> arrow2::datatypes::DataType { arrow2::datatypes::DataType::Extension( "custom".to_string(), Box::new(arrow2::datatypes::DataType::UInt64), None, ) } } impl arrow2_convert::serialize::ArrowSerialize for CustomType { type MutableArrayType = arrow2::array::MutablePrimitiveArray<u64>; #[inline] fn new_array() -> Self::MutableArrayType { Self::MutableArrayType::from(<Self as arrow2_convert::field::ArrowField>::data_type()) } #[inline] fn arrow_serialize(v: &Self, array: &mut Self::MutableArrayType) -> arrow2::error::Result<()> { array.try_push(Some(v.0)) } } impl arrow2_convert::deserialize::ArrowDeserialize for CustomType { type ArrayType = arrow2::array::PrimitiveArray<u64>; #[inline] fn arrow_deserialize(v: Option<&u64>) -> Option<Self> { v.map(|t| CustomType(*t)) } } // enable Vec<CustomType> arrow2_convert::arrow_enable_vec_for_type!(CustomType); fn item() -> Root { use chrono::{NaiveDate, NaiveDateTime}; Root { name: Some("a".to_string()), is_deleted: false, a1: Some(0.1), a2: 1, a3: Some(b"aa".to_vec()), a4: NaiveDate::from_ymd_opt(1970, 1, 2).unwrap(), a5: NaiveDateTime::from_timestamp_opt(10000, 0).unwrap(), a6: Some(NaiveDateTime::from_timestamp_opt(10001, 0)).unwrap(), date_time_list: vec![ NaiveDateTime::from_timestamp_opt(10000, 10).unwrap(), NaiveDateTime::from_timestamp_opt(10000, 11).unwrap(), ], nullable_list: Some(vec![Some("cc".to_string()), Some("dd".to_string())]), required_list: vec![Some("aa".to_string()), Some("bb".to_string())], custom: CustomType(10), nullable_custom: Some(CustomType(11)), custom_list: vec![CustomType(12), CustomType(13)], child: Child { a1: 10, a2: "hello".to_string(), child_array: vec![ ChildChild { a1: 100, bool_array: vec![false], int64_array: vec![45555, 2124214, 224, 24214, 2424], }, ChildChild { a1: 101, bool_array: vec![true, true, true], int64_array: vec![4533, 22222, 2323, 333, 33322], }, ], }, int32_array: vec![0, 1, 3], large_binary: b"aa".to_vec(), fixed_size_binary: b"aaa".to_vec(), large_string: "abcdefg".to_string(), large_vec: vec![1, 2, 3, 4], fixed_size_vec: vec![10, 20, 30], } } Failing Test Case #[test] fn round_trip_parquet() -> arrow2::error::Result<()> { // serialize to an arrow array let original_array = [item(), item(), item()]; // declare a schema with fields let schema = Schema::from(vec![ Field::new("root_custom_struct", <Root as arrow2_convert::field::ArrowField>::data_type(), true), ]); let chunk: Chunk<Arc<dyn Array>> = original_array.try_into_arrow()?; let options = WriteOptions { write_statistics: true, compression: CompressionOptions::Zstd(Some(ZstdLevel::default())), version: Version::V1, }; // encodings has to be the length of the number of elements in the struct // Maybe dynamically do this the same way that io/parquet/write/pages.rs is checking? let row_groups = RowGroupIterator::try_new( vec![Ok(chunk)].into_iter(), &schema, options, vec![vec![Encoding::Plain; 25]], )?; // anything implementing `std::io::Write` works let mut buffer = vec![]; let mut writer = FileWriter::try_new(&mut buffer, schema, options)?; // Write to buffer for group in row_groups { writer.write(group?)?; } let _file_size = writer.end(None)?; // Wrap buffer in a Cursor...this makes the buffer impl Read & Seek (needed for read::read_metadata) let mut reader = std::io::Cursor::new(buffer); // we can read its metadata: let metadata = read::read_metadata(&mut reader)?; // and infer a [`Schema`] from the `metadata`. let schema = read::infer_schema(&metadata)?; println!("Schema: {:?}", &schema); // we can filter the columns we need (here we select all) let schema = schema.filter(|_index, _field| true); // we can read the statistics of all parquet's row groups (here for each field) for field in &schema.fields { let statistics = read::statistics::deserialize(field, &metadata.row_groups)?; println!("{statistics:#?}"); } // Get all the row groups let row_groups = metadata .row_groups; // We can then read the row groups into chunks let chunks = read::FileReader::new(reader, row_groups, schema, None, None, None); // iterate over chunks and validate each is not empty for maybe_chunk in chunks { println!("{:?}", maybe_chunk); let chunk = maybe_chunk?; assert!(!chunk.is_empty()); } Ok(()) } Rust Backtrace thread 'arrow::round_trip_parquet' panicked at 'called `Result::unwrap()` on an `Err` value: OutOfSpec("The children must have an equal number of values.\n However, the values at index 1 have a length of 9, which is different from values at index 0, 6.")', /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/array/struct_/mod.rs:120:52 stack backtrace: 0: rust_begin_unwind at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:575:5 1: core::panicking::panic_fmt at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:64:14 2: core::result::unwrap_failed at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/result.rs:1791:5 3: core::result::Result<T,E>::unwrap at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/result.rs:1113:23 4: arrow2::array::struct_::StructArray::new at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/array/struct_/mod.rs:120:9 5: arrow2::array::struct_::StructArray::from_data at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/array/struct_/mod.rs:129:9 6: <arrow2::io::parquet::read::deserialize::struct_::StructIterator as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/deserialize/struct_.rs:50:22 7: <alloc::boxed::Box<I,A> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/boxed.rs:1923:9 8: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:103:9 9: <alloc::boxed::Box<I,A> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/boxed.rs:1923:9 10: <arrow2::io::parquet::read::deserialize::struct_::StructIterator as core::iter::traits::iterator::Iterator>::next::{{closure}} at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/deserialize/struct_.rs:26:25 11: core::iter::adapters::map::map_fold::{{closure}} at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:84:28 12: core::iter::traits::iterator::Iterator::fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:2414:21 13: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:124:9 14: core::iter::traits::iterator::Iterator::for_each at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:831:9 15: alloc::vec::Vec<T,A>::extend_trusted at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/mod.rs:2880:17 16: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_extend.rs:26:9 17: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter_nested.rs:62:9 18: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter.rs:33:9 19: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/mod.rs:2748:9 20: core::iter::traits::iterator::Iterator::collect at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:1836:9 21: <arrow2::io::parquet::read::deserialize::struct_::StructIterator as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/deserialize/struct_.rs:23:22 22: <alloc::boxed::Box<I,A> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/boxed.rs:1923:9 23: <arrow2::io::parquet::read::deserialize::struct_::StructIterator as core::iter::traits::iterator::Iterator>::next::{{closure}} at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/deserialize/struct_.rs:26:25 24: core::iter::adapters::map::map_fold::{{closure}} at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:84:28 25: core::iter::traits::iterator::Iterator::fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:2414:21 26: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:124:9 27: core::iter::traits::iterator::Iterator::for_each at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:831:9 28: alloc::vec::Vec<T,A>::extend_trusted at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/mod.rs:2880:17 29: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_extend.rs:26:9 30: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter_nested.rs:62:9 31: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter.rs:33:9 32: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/mod.rs:2748:9 33: core::iter::traits::iterator::Iterator::collect at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:1836:9 34: <arrow2::io::parquet::read::deserialize::struct_::StructIterator as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/deserialize/struct_.rs:23:22 35: <alloc::boxed::Box<I,A> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/boxed.rs:1923:9 36: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:103:9 37: <alloc::boxed::Box<I,A> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/boxed.rs:1923:9 38: <arrow2::io::parquet::read::row_group::RowGroupDeserializer as core::iter::traits::iterator::Iterator>::next::{{closure}} at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/row_group.rs:69:25 39: core::iter::adapters::map::map_try_fold::{{closure}} at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:91:28 40: core::iter::traits::iterator::Iterator::try_fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:2238:21 41: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/map.rs:117:9 42: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::try_fold at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/mod.rs:195:9 43: core::iter::traits::iterator::Iterator::try_for_each at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:2299:9 44: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/mod.rs:178:9 45: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter_nested.rs:26:32 46: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/spec_from_iter.rs:33:9 47: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/alloc/src/vec/mod.rs:2748:9 48: core::iter::traits::iterator::Iterator::collect at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:1836:9 49: <core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}} at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/result.rs:2075:49 50: core::iter::adapters::try_process at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/adapters/mod.rs:164:17 51: <core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/result.rs:2075:9 52: core::iter::traits::iterator::Iterator::collect at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/iter/traits/iterator.rs:1836:9 53: <arrow2::io::parquet::read::row_group::RowGroupDeserializer as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/row_group.rs:66:21 54: <arrow2::io::parquet::read::file::FileReader<R> as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/file.rs:77:19 55: <arrow2::io::parquet::read::file::FileReader<R> as core::iter::traits::iterator::Iterator>::next at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/arrow2-0.14.2/src/io/parquet/read/file.rs:97:21 56: parquet_round_trip::arrow::round_trip_parquet at ./src/arrow.rs:324:24 57: parquet_round_trip::arrow::round_trip_parquet::{{closure}} at ./src/arrow.rs:260:28 58: core::ops::function::FnOnce::call_once at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/ops/function.rs:507:5 59: core::ops::function::FnOnce::call_once at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/ops/function.rs:507:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. test arrow::round_trip_parquet ... FAILED failures: failures: arrow::round_trip_parquet
DayOfThePenguin Updated
Don't know if i am supposed to be able to do that, however until f6fe850 was merged, i was able to do so by using the overlay like: ... rustStable = (prev.rustStable or { }) // (prev.rustChannelOf or pkgs.rustChannelOf) { sha256 = "sha256-oro0HsosbLRAuZx68xd0zfgPl6efNj2AQruKRq3KA2g="; #2022-05-24 channel = "stable"; }; rust-stable = final.rustStable.rust // final.rust-analyzer; rust-src-stable = final.rustStable.rust-src; Although, now after the mentioned commit, the build of rust-src-stable errors and exits and therefore fails the build, when chmod and after fixing that, also realpath -e are complaining about missing arguments.
calbrecht Updated
# ./LibreQoS.py --updateonly lqosd is running refreshShapers starting at 03/02/2023 15:36:08 /opt/libreqos/src/./LibreQoS.py:912: UserWarning: Rust failed to validate ShapedDevices.csv if (validateNetworkAndDevices() == True): /opt/libreqos/src/./LibreQoS.py:912: UserWarning: UnequalLengths( "At line 3238, position 209667. Expected 13 fields, found 1", ) if (validateNetworkAndDevices() == True): network.json passed validation ShapedDevices.csv failed validation /opt/libreqos/src/./LibreQoS.py:1315: UserWarning: Validation failed. Will now exit. refreshShapersUpdateOnly() Now: rust try to use last line "#END OF FILE" Recommended: ommit hashed lines
interduo Updated bug
test (ubuntu-latest, nightly)internal compiler error: no errors encountered even though `delay_span_bug` issued -- [test (ubuntu-latest, nightly)](https://github.com/axodotdev/cargo-dist/actions/runs/4101278991/jobs/7072904560#step:5:250) internal compiler error: broken MIR in Item(WithOptConstParam { did: DefId(0:3469 ~ combine[f819]::stream::{impl#47}::reset), const_param_did: None }) (after phase change to runtime-optimized) at bb0[2]: looks like the action failing is for tests on nightly- we may want to make nightly tests "optional" - its useful to know that they are failing but i don't think we show it as failing as it doesn't affect the functioning of the tool- curious your thoughts, @Gankra ? if you're down i can make a PR to get this goin
ashleygwilliams Updated
Would love to see this implemented in RUST
Chainski Updated
Hi everybody 👋 I've been working for some time to a new lexer that can highlight Rust syntax. I thought it would be nice especially considered the growing usage of Rustler in the ecosystem. Would it be good to move the repo to this organization for easier discoverability? Let me know :-)
dottorblaster Updated
workspace seems to be not supported. I get workspace with 2 subprojets, but when running cargo aur, get Error: missing field package at line 1 column 1
Ludea Updated
As the backend is made with Rust, it would be awesome if Windmill have a Rust script option.
ggondim Updated
Fullstack Rust: The Complete Guide to Building Apps with the Rust Programming Language and Friends
Guitarheroua Updated
Description of feature Everything's getting rewritten in Rust, there's just a moral obligation to do it at this point 🤷. Regarding actual points, I'd like to start introducing some more features into makedeb, but want them to only be accessible on the alpha branch. Rust's #[cfg()] compile-time feature would make this extremely nice to implement, while with Bash we would have to implement hacky methods all over the place. Plus we get static binaries then too, that's always a great plus. Installed makedeb version 6.0.0-alpha9
Summary Most of rustc's optimizations are currently found in LLVM. However, there is a significant amount optimization code in rust-lang/rust as well, in the form of mir opts. To the extent that I can tell, there was never any overarching technical design for mir opts. The conversation that I would really like to have is this: If we were to redesign rust-lang/rust optimizations from scratch today, what would they look like? Does the path we are on lead to a point that reasonably approximates that ideal? Unfortunately, having that conversation today would be extremely difficult, because we cannot answer the "how would we design..." question without knowing what we are designing for. So the goal of this meeting is instead to have a discussion to inform the drafting of a policy on this last question. Specifically, I would like to come up with a list of "guardrails" - limitations on what kind of optimizations we are interested in having in rust-lang/rust - in addition to some guidelines on the cost/benefit analysis against which optimizations are evaluated. The hope is that this will suffice to be able to meaningfully have the "what would optimizations look like if they were designed from scratch today" conversation mentioned above. I'm happy to prepare a document to drive the meeting. I'm also aware that this topic runs the risk of being too broad/vague to be productive. If people have a concrete idea as to how to achieve the stated goal in a better way, I would more than welcome feedback. About this issue This issue corresponds to a meeting proposal for the compiler team steering meeting. It corresponds to a possible topic of discussion. You can read more about the steering meeting procedure here. Comment policy These issues are meant to be used as an "announcements channel" regarding the proposal, and not as a place to discuss the technical details. Feel free to subscribe to updates. We'll post comments when reviewing the proposal in meetings or making a scheduling decision. In the meantime, if you have questions or ideas, ping the proposers on Zulip (or elsewhere).
The first step towards Zinnia runtime for Rust modules. Demo Build and run a Rust module that prints "Hello world" Discussion points What API to use for logging? As a Rust author, I would love to use println!() and friends. What is the DX for "change code" - "build to WASM" - "run code"? Maybe zinnia wasmbuild && zinnia run target/zinnia/my-module.js? How are we going to test this functionality? It would be great to set up a CI pipeline for Zinnia. We don't want module authors to use wasm-bindgen directly. Instead, the Zinnia SDK should provide a macro to decorate the main module function so that the runtime can find it. Bare-bone documentation for Rust module authors to make it easy to add more content while adding new features.
bajtos Updated
In #77, Rust was pinned as a quick hack. We should revert this ASAP, adding compilation against both latest stable and beta in CI (the latter so we get early warnings of potential issues). Pinning to old versions of the compiler is just building up technical debt.
nickray Updated
https://github.com/cross-rs/cross/wiki/FAQ#openssl-is-not-installed
Mogyuchi Updated
cargo test
oowhowhatoo Updated
Why Rust? Secret storage support + REST backend = one language & one file Easier distribution No NPM, more popular, no Python environment issues to deal with Why not? Current situation is "good enough" Firebase SDK is nicer to use than calling the API directly
jomra Updated
Previous Next