@@ -117,6 +117,7 @@ fn write_node_field_accessor(
117117 rust_type : & str ,
118118) -> std:: io:: Result < ( ) > {
119119 if field. optional {
120+ writeln ! ( file, " #[must_use]" ) ?;
120121 writeln ! (
121122 file,
122123 " pub fn {}(&self) -> Option<{rust_type}<'a>> {{" ,
@@ -136,6 +137,7 @@ fn write_node_field_accessor(
136137 ) ?;
137138 writeln ! ( file, " }}" ) ?;
138139 } else {
140+ writeln ! ( file, " #[must_use]" ) ?;
139141 writeln ! (
140142 file,
141143 " pub fn {}(&self) -> {rust_type}<'a> {{" ,
@@ -371,6 +373,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
371373 for field in fields {
372374 match field. c_type . as_str ( ) {
373375 "rbs_string" => {
376+ writeln ! ( file, " #[must_use]" ) ?;
374377 writeln ! ( file, " pub fn {}(&self) -> RBSString {{" , field. name) ?;
375378 writeln ! (
376379 file,
@@ -381,6 +384,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
381384 writeln ! ( file) ?;
382385 }
383386 "bool" => {
387+ writeln ! ( file, " #[must_use]" ) ?;
384388 writeln ! ( file, " pub fn {}(&self) -> bool {{" , field. name) ?;
385389 writeln ! ( file, " unsafe {{ (*self.pointer).{} }}" , field. name) ?;
386390 writeln ! ( file, " }}" ) ?;
@@ -398,6 +402,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
398402 }
399403 "rbs_location" => {
400404 if field. optional {
405+ writeln ! ( file, " #[must_use]" ) ?;
401406 writeln ! (
402407 file,
403408 " pub fn {}(&self) -> Option<RBSLocation> {{" ,
@@ -415,6 +420,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
415420 writeln ! ( file, " }}" ) ?;
416421 writeln ! ( file, " }}" ) ?;
417422 } else {
423+ writeln ! ( file, " #[must_use]" ) ?;
418424 writeln ! ( file, " pub fn {}(&self) -> RBSLocation {{" , field. name) ?;
419425 writeln ! (
420426 file,
@@ -427,6 +433,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
427433 }
428434 "rbs_location_list" => {
429435 if field. optional {
436+ writeln ! ( file, " #[must_use]" ) ?;
430437 writeln ! (
431438 file,
432439 " pub fn {}(&self) -> Option<RBSLocationList> {{" ,
@@ -444,6 +451,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
444451 writeln ! ( file, " }}" ) ?;
445452 writeln ! ( file, " }}" ) ?;
446453 } else {
454+ writeln ! ( file, " #[must_use]" ) ?;
447455 writeln ! (
448456 file,
449457 " pub fn {}(&self) -> RBSLocationList {{" ,
@@ -468,6 +476,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
468476 field. name . as_str ( )
469477 } ;
470478 if field. optional {
479+ writeln ! ( file, " #[must_use]" ) ?;
471480 writeln ! ( file, " pub fn {name}(&self) -> Option<Node<'a>> {{" ) ?;
472481 writeln ! (
473482 file,
@@ -479,6 +488,7 @@ fn generate(config: &Config) -> Result<(), Box<dyn Error>> {
479488 " if ptr.is_null() {{ None }} else {{ Some(Node::new(self.parser, ptr)) }}"
480489 ) ?;
481490 } else {
491+ writeln ! ( file, " #[must_use]" ) ?;
482492 writeln ! ( file, " pub fn {name}(&self) -> Node<'a> {{" ) ?;
483493 writeln ! (
484494 file,
0 commit comments