pub struct ExifInfo {Show 22 fields
pub latitude: Option<f64>,
pub longitude: Option<f64>,
pub city: Option<String>,
pub state: Option<String>,
pub country: Option<String>,
pub time_zone: Option<String>,
pub date_time_original: Option<String>,
pub make: Option<String>,
pub model: Option<String>,
pub lens_model: Option<String>,
pub exposure_time: Option<String>,
pub f_number: Option<f64>,
pub focal_length: Option<f64>,
pub iso: Option<u32>,
pub exif_image_width: Option<u32>,
pub exif_image_height: Option<u32>,
pub file_size_in_byte: Option<u64>,
pub description: Option<String>,
pub rating: Option<u8>,
pub orientation: Option<String>,
pub modify_date: Option<String>,
pub projection_type: Option<String>,
}Expand description
EXIF metadata for an asset.
Most fields are optional as EXIF data may be incomplete or missing.
Fields§
§latitude: Option<f64>GPS latitude
longitude: Option<f64>GPS longitude
city: Option<String>City name from GPS reverse geocoding
state: Option<String>State/province from GPS reverse geocoding
country: Option<String>Country from GPS reverse geocoding
time_zone: Option<String>Timezone of the location
date_time_original: Option<String>Original capture date/time from EXIF
make: Option<String>Camera manufacturer
model: Option<String>Camera model
lens_model: Option<String>Lens model
exposure_time: Option<String>Exposure time (e.g., “1/125”)
f_number: Option<f64>Aperture f-number
focal_length: Option<f64>Focal length in mm
iso: Option<u32>ISO sensitivity
exif_image_width: Option<u32>Image width in pixels
exif_image_height: Option<u32>Image height in pixels
file_size_in_byte: Option<u64>File size in bytes
description: Option<String>Image description/caption
rating: Option<u8>User rating (1-5)
orientation: Option<String>Image orientation (e.g., “Rotate 90 CW”)
modify_date: Option<String>File modification date
projection_type: Option<String>Projection type for 360 photos
Implementations§
Source§impl ExifInfo
impl ExifInfo
Sourcepub fn has_camera_info(&self) -> bool
pub fn has_camera_info(&self) -> bool
Returns true if camera make/model is present
Sourcepub fn has_timezone(&self) -> bool
pub fn has_timezone(&self) -> bool
Returns true if timezone information is present
Sourcepub fn has_capture_time(&self) -> bool
pub fn has_capture_time(&self) -> bool
Returns true if original capture time is present
Sourcepub fn has_lens_info(&self) -> bool
pub fn has_lens_info(&self) -> bool
Returns true if lens information is present
Sourcepub fn has_location(&self) -> bool
pub fn has_location(&self) -> bool
Returns true if location (city/country) is present
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ExifInfo
impl<'de> Deserialize<'de> for ExifInfo
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ExifInfo
impl RefUnwindSafe for ExifInfo
impl Send for ExifInfo
impl Sync for ExifInfo
impl Unpin for ExifInfo
impl UnsafeUnpin for ExifInfo
impl UnwindSafe for ExifInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more