@@ -282,7 +282,9 @@ impl Metadata {
282
282
let ok = gexiv2:: gexiv2_metadata_open_path ( metadata, c_str_path. as_ptr ( ) , & mut err) ;
283
283
if ok != 1 {
284
284
let err_msg = ffi:: CStr :: from_ptr ( ( * err) . message ) . to_str ( ) ;
285
- return Err ( Rexiv2Error :: Internal ( err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ) ) ;
285
+ return Err ( Rexiv2Error :: Internal (
286
+ err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ,
287
+ ) ) ;
286
288
}
287
289
Ok ( Metadata { raw : metadata } )
288
290
}
@@ -303,13 +305,17 @@ impl Metadata {
303
305
let mut err: * mut gexiv2:: GError = ptr:: null_mut ( ) ;
304
306
unsafe {
305
307
let metadata = gexiv2:: gexiv2_metadata_new ( ) ;
306
- let ok = gexiv2:: gexiv2_metadata_open_buf ( metadata,
307
- data. as_ptr ( ) ,
308
- data. len ( ) as libc:: c_long ,
309
- & mut err) ;
308
+ let ok = gexiv2:: gexiv2_metadata_open_buf (
309
+ metadata,
310
+ data. as_ptr ( ) ,
311
+ data. len ( ) as libc:: c_long ,
312
+ & mut err,
313
+ ) ;
310
314
if ok != 1 {
311
315
let err_msg = ffi:: CStr :: from_ptr ( ( * err) . message ) . to_str ( ) ;
312
- return Err ( Rexiv2Error :: Internal ( err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ) ) ;
316
+ return Err ( Rexiv2Error :: Internal (
317
+ err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ,
318
+ ) ) ;
313
319
}
314
320
Ok ( Metadata { raw : metadata } )
315
321
}
@@ -323,7 +329,9 @@ impl Metadata {
323
329
let ok = gexiv2:: gexiv2_metadata_save_file ( self . raw , c_str_path. as_ptr ( ) , & mut err) ;
324
330
if ok != 1 {
325
331
let err_msg = ffi:: CStr :: from_ptr ( ( * err) . message ) . to_str ( ) ;
326
- return Err ( Rexiv2Error :: Internal ( err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ) ) ;
332
+ return Err ( Rexiv2Error :: Internal (
333
+ err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ,
334
+ ) ) ;
327
335
}
328
336
Ok ( ( ) )
329
337
}
@@ -513,9 +521,11 @@ impl Metadata {
513
521
let c_str_tag = ffi:: CString :: new ( tag) . unwrap ( ) ;
514
522
let c_str_val = ffi:: CString :: new ( value) . unwrap ( ) ;
515
523
unsafe {
516
- int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_string ( self . raw ,
517
- c_str_tag. as_ptr ( ) ,
518
- c_str_val. as_ptr ( ) ) )
524
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_string (
525
+ self . raw ,
526
+ c_str_tag. as_ptr ( ) ,
527
+ c_str_val. as_ptr ( ) ,
528
+ ) )
519
529
}
520
530
}
521
531
@@ -525,8 +535,8 @@ impl Metadata {
525
535
pub fn get_tag_interpreted_string ( & self , tag : & str ) -> Result < String > {
526
536
let c_str_tag = ffi:: CString :: new ( tag) . unwrap ( ) ;
527
537
unsafe {
528
- let c_str_val = gexiv2 :: gexiv2_metadata_get_tag_interpreted_string ( self . raw ,
529
- c_str_tag. as_ptr ( ) ) ;
538
+ let c_str_val =
539
+ gexiv2 :: gexiv2_metadata_get_tag_interpreted_string ( self . raw , c_str_tag. as_ptr ( ) ) ;
530
540
if c_str_val. is_null ( ) {
531
541
return Err ( Rexiv2Error :: NoValue ) ;
532
542
}
@@ -573,9 +583,11 @@ impl Metadata {
573
583
let mut ptrs: Vec < _ > = c_strs. iter ( ) . map ( |c| c. as_ptr ( ) ) . collect ( ) ;
574
584
ptrs. push ( ptr:: null ( ) ) ;
575
585
unsafe {
576
- int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_multiple ( self . raw ,
577
- c_str_tag. as_ptr ( ) ,
578
- ptrs. as_mut_ptr ( ) ) )
586
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_multiple (
587
+ self . raw ,
588
+ c_str_tag. as_ptr ( ) ,
589
+ ptrs. as_mut_ptr ( ) ,
590
+ ) )
579
591
}
580
592
}
581
593
@@ -593,9 +605,11 @@ impl Metadata {
593
605
pub fn set_tag_numeric ( & self , tag : & str , value : i32 ) -> Result < ( ) > {
594
606
let c_str_tag = ffi:: CString :: new ( tag) . unwrap ( ) ;
595
607
unsafe {
596
- int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_long ( self . raw ,
597
- c_str_tag. as_ptr ( ) ,
598
- value as libc:: c_long ) )
608
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_set_tag_long (
609
+ self . raw ,
610
+ c_str_tag. as_ptr ( ) ,
611
+ value as libc:: c_long ,
612
+ ) )
599
613
}
600
614
}
601
615
@@ -620,10 +634,12 @@ impl Metadata {
620
634
pub fn set_tag_rational ( & self , tag : & str , value : & num_rational:: Ratio < i32 > ) -> Result < ( ) > {
621
635
let c_str_tag = ffi:: CString :: new ( tag) . unwrap ( ) ;
622
636
unsafe {
623
- int_bool_to_result ( gexiv2:: gexiv2_metadata_set_exif_tag_rational ( self . raw ,
624
- c_str_tag. as_ptr ( ) ,
625
- * value. numer ( ) ,
626
- * value. denom ( ) ) )
637
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_set_exif_tag_rational (
638
+ self . raw ,
639
+ c_str_tag. as_ptr ( ) ,
640
+ * value. numer ( ) ,
641
+ * value. denom ( ) ,
642
+ ) )
627
643
}
628
644
}
629
645
@@ -672,15 +688,15 @@ impl Metadata {
672
688
/// Returns the f-number used by the camera taking the photograph.
673
689
pub fn get_fnumber ( & self ) -> Option < f64 > {
674
690
match unsafe { gexiv2:: gexiv2_metadata_get_fnumber ( self . raw ) } {
675
- error_value if error_value < 0.0 => None , // gexiv2 returns -1.0 on error
691
+ error_value if error_value < 0.0 => None , // gexiv2 returns -1.0 on error
676
692
fnumber => Some ( fnumber) ,
677
693
}
678
694
}
679
695
680
696
/// Returns the focal length used by the camera taking the photograph.
681
697
pub fn get_focal_length ( & self ) -> Option < f64 > {
682
698
match unsafe { gexiv2:: gexiv2_metadata_get_focal_length ( self . raw ) } {
683
- error_value if error_value < 0.0 => None , // gexiv2 returns -1.0 on error
699
+ error_value if error_value < 0.0 => None , // gexiv2 returns -1.0 on error
684
700
focal => Some ( focal) ,
685
701
}
686
702
}
@@ -697,8 +713,8 @@ impl Metadata {
697
713
698
714
/// Get the thumbnail stored in the EXIF data.
699
715
pub fn get_thumbnail ( & self ) -> Option < & [ u8 ] > {
700
- let mut data : * mut u8 = ptr:: null_mut ( ) ;
701
- let mut size : libc:: c_int = 0 ;
716
+ let mut data: * mut u8 = ptr:: null_mut ( ) ;
717
+ let mut size: libc:: c_int = 0 ;
702
718
unsafe {
703
719
match gexiv2:: gexiv2_metadata_get_exif_thumbnail ( self . raw , & mut data, & mut size) {
704
720
0 => None ,
@@ -709,33 +725,37 @@ impl Metadata {
709
725
710
726
/// Remove the thumbnail from the EXIF data.
711
727
pub fn erase_thumbnail ( & self ) {
712
- unsafe {
713
- gexiv2:: gexiv2_metadata_erase_exif_thumbnail ( self . raw )
714
- }
728
+ unsafe { gexiv2:: gexiv2_metadata_erase_exif_thumbnail ( self . raw ) }
715
729
}
716
730
717
731
/// Set or replace the EXIF thumbnail with the image in the file.
718
732
pub fn set_thumbnail_from_file < S : AsRef < ffi:: OsStr > > ( & self , path : S ) -> Result < ( ) > {
719
733
let mut err: * mut gexiv2:: GError = ptr:: null_mut ( ) ;
720
734
let c_str_path = ffi:: CString :: new ( path. as_ref ( ) . as_bytes ( ) ) . unwrap ( ) ;
721
735
unsafe {
722
- let ok = gexiv2:: gexiv2_metadata_set_exif_thumbnail_from_file ( self . raw ,
723
- c_str_path. as_ptr ( ) ,
724
- & mut err) ;
736
+ let ok = gexiv2:: gexiv2_metadata_set_exif_thumbnail_from_file (
737
+ self . raw ,
738
+ c_str_path. as_ptr ( ) ,
739
+ & mut err,
740
+ ) ;
725
741
if ok != 1 {
726
742
let err_msg = ffi:: CStr :: from_ptr ( ( * err) . message ) . to_str ( ) ;
727
- return Err ( Rexiv2Error :: Internal ( err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ) ) ;
743
+ return Err ( Rexiv2Error :: Internal (
744
+ err_msg. ok ( ) . map ( |msg| msg. to_string ( ) ) ,
745
+ ) ) ;
728
746
}
729
- Ok ( ( ) )
747
+ Ok ( ( ) )
730
748
}
731
749
}
732
750
733
751
/// Set or replace the EXIF thumbnail with the content of a buffer.
734
752
pub fn set_thumbnail_from_buffer ( & self , data : & [ u8 ] ) {
735
753
unsafe {
736
- gexiv2:: gexiv2_metadata_set_exif_thumbnail_from_buffer ( self . raw ,
737
- data. as_ptr ( ) ,
738
- data. len ( ) as libc:: c_int )
754
+ gexiv2:: gexiv2_metadata_set_exif_thumbnail_from_buffer (
755
+ self . raw ,
756
+ data. as_ptr ( ) ,
757
+ data. len ( ) as libc:: c_int ,
758
+ )
739
759
}
740
760
}
741
761
@@ -746,14 +766,17 @@ impl Metadata {
746
766
unsafe {
747
767
let ptr = gexiv2:: gexiv2_metadata_get_preview_properties ( self . raw ) ;
748
768
if ptr. is_null ( ) {
749
- return None
769
+ return None ;
750
770
}
751
771
752
- let mut previews : Vec < PreviewImage > = vec ! [ ] ;
772
+ let mut previews: Vec < PreviewImage > = vec ! [ ] ;
753
773
let mut n = 0 ;
754
774
while !( * ptr. offset ( n) ) . is_null ( ) {
755
775
let preview_prop = * ptr. offset ( n) ;
756
- previews. push ( PreviewImage { raw : preview_prop, metadata : self } ) ;
776
+ previews. push ( PreviewImage {
777
+ raw : preview_prop,
778
+ metadata : self ,
779
+ } ) ;
757
780
n += 1 ;
758
781
}
759
782
Some ( previews)
@@ -769,17 +792,23 @@ impl Metadata {
769
792
let alt = & mut 0.0 ;
770
793
match unsafe { gexiv2:: gexiv2_metadata_get_gps_info ( self . raw , lon, lat, alt) } {
771
794
0 => None ,
772
- _ => Some ( GpsInfo { longitude : * lon, latitude : * lat, altitude : * alt } ) ,
795
+ _ => Some ( GpsInfo {
796
+ longitude : * lon,
797
+ latitude : * lat,
798
+ altitude : * alt,
799
+ } ) ,
773
800
}
774
801
}
775
802
776
803
/// Save the specified GPS values to the metadata.
777
804
pub fn set_gps_info ( & self , gps : & GpsInfo ) -> Result < ( ) > {
778
805
unsafe {
779
- int_bool_to_result ( gexiv2:: gexiv2_metadata_set_gps_info ( self . raw ,
780
- gps. longitude ,
781
- gps. latitude ,
782
- gps. altitude ) )
806
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_set_gps_info (
807
+ self . raw ,
808
+ gps. longitude ,
809
+ gps. latitude ,
810
+ gps. altitude ,
811
+ ) )
783
812
}
784
813
}
785
814
@@ -796,26 +825,19 @@ impl Drop for Metadata {
796
825
}
797
826
798
827
impl PreviewImage < ' _ > {
799
-
800
828
/// Return the size of the preview image in bytes.
801
829
pub fn get_size ( & self ) -> u32 {
802
- unsafe {
803
- gexiv2:: gexiv2_preview_properties_get_size ( self . raw )
804
- }
830
+ unsafe { gexiv2:: gexiv2_preview_properties_get_size ( self . raw ) }
805
831
}
806
832
807
833
/// Return the width of the preview image.
808
834
pub fn get_width ( & self ) -> u32 {
809
- unsafe {
810
- gexiv2:: gexiv2_preview_properties_get_width ( self . raw )
811
- }
835
+ unsafe { gexiv2:: gexiv2_preview_properties_get_width ( self . raw ) }
812
836
}
813
837
814
838
/// Return the height of the preview image.
815
839
pub fn get_height ( & self ) -> u32 {
816
- unsafe {
817
- gexiv2:: gexiv2_preview_properties_get_height ( self . raw )
818
- }
840
+ unsafe { gexiv2:: gexiv2_preview_properties_get_height ( self . raw ) }
819
841
}
820
842
821
843
/// Return the media type of the preview image.
@@ -842,11 +864,10 @@ impl PreviewImage<'_> {
842
864
843
865
/// Get the preview image data.
844
866
pub fn get_data ( & self ) -> Result < Vec < u8 > > {
845
- let image = unsafe {
846
- gexiv2:: gexiv2_metadata_get_preview_image ( self . metadata . raw , self . raw )
847
- } ;
867
+ let image =
868
+ unsafe { gexiv2:: gexiv2_metadata_get_preview_image ( self . metadata . raw , self . raw ) } ;
848
869
849
- let mut size : libc:: c_uint = 0 ;
870
+ let mut size: libc:: c_uint = 0 ;
850
871
unsafe {
851
872
let data = gexiv2:: gexiv2_preview_image_get_data ( image, & mut size) ;
852
873
let result = if data. is_null ( ) {
@@ -861,9 +882,8 @@ impl PreviewImage<'_> {
861
882
862
883
/// Save the preview image to a file.
863
884
pub fn save_to_file < S : AsRef < ffi:: OsStr > > ( & self , path : S ) -> Result < ( ) > {
864
- let image = unsafe {
865
- gexiv2:: gexiv2_metadata_get_preview_image ( self . metadata . raw , self . raw )
866
- } ;
885
+ let image =
886
+ unsafe { gexiv2:: gexiv2_metadata_get_preview_image ( self . metadata . raw , self . raw ) } ;
867
887
868
888
let c_str_path = ffi:: CString :: new ( path. as_ref ( ) . as_bytes ( ) ) . unwrap ( ) ;
869
889
unsafe {
@@ -1037,8 +1057,10 @@ pub fn register_xmp_namespace(name: &str, prefix: &str) -> Result<()> {
1037
1057
let c_str_name = ffi:: CString :: new ( name) . unwrap ( ) ;
1038
1058
let c_str_prefix = ffi:: CString :: new ( prefix) . unwrap ( ) ;
1039
1059
unsafe {
1040
- int_bool_to_result ( gexiv2:: gexiv2_metadata_register_xmp_namespace ( c_str_name. as_ptr ( ) ,
1041
- c_str_prefix. as_ptr ( ) ) )
1060
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_register_xmp_namespace (
1061
+ c_str_name. as_ptr ( ) ,
1062
+ c_str_prefix. as_ptr ( ) ,
1063
+ ) )
1042
1064
}
1043
1065
}
1044
1066
@@ -1057,7 +1079,9 @@ pub fn register_xmp_namespace(name: &str, prefix: &str) -> Result<()> {
1057
1079
pub fn unregister_xmp_namespace ( name : & str ) -> Result < ( ) > {
1058
1080
let c_str_name = ffi:: CString :: new ( name) . unwrap ( ) ;
1059
1081
unsafe {
1060
- int_bool_to_result ( gexiv2:: gexiv2_metadata_unregister_xmp_namespace ( c_str_name. as_ptr ( ) ) )
1082
+ int_bool_to_result ( gexiv2:: gexiv2_metadata_unregister_xmp_namespace (
1083
+ c_str_name. as_ptr ( ) ,
1084
+ ) )
1061
1085
}
1062
1086
}
1063
1087
0 commit comments