pub enum Object {
Null,
Boolean(bool),
Integer(i64),
Real(f64),
String(PdfString),
Name(Name),
Array(Vec<Object>),
Dictionary(HashMap<Name, Object>),
Stream {
dict: HashMap<Name, Object>,
data: StreamData,
},
Reference(ObjectId),
}Expand description
A PDF object value.
Object::Reference holds an unresolved indirect reference — it is not
recursively resolved at parse time to avoid OnceLock deadlocks.
Variants§
Null
The PDF null object.
Boolean(bool)
A boolean value.
Integer(i64)
An integer number.
Real(f64)
A real (floating-point) number.
String(PdfString)
A PDF string (encoding-aware).
Name(Name)
A PDF name.
Array(Vec<Object>)
An array of objects.
Dictionary(HashMap<Name, Object>)
A dictionary mapping names to objects.
Stream
A stream object with dictionary metadata and raw data reference.
Reference(ObjectId)
An unresolved indirect reference to another object.
Implementations§
Source§impl Object
impl Object
Sourcepub fn as_boolean(&self) -> Option<bool>
pub fn as_boolean(&self) -> Option<bool>
ADR-019 alias for as_bool().
Corresponds to CPDF_Object::GetBooleanValue.
Sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Returns the floating-point value if this is Object::Real or Object::Integer.
Sourcepub fn as_string(&self) -> Option<&PdfString>
pub fn as_string(&self) -> Option<&PdfString>
Returns a reference to the PdfString if this is Object::String.
Sourcepub fn as_name(&self) -> Option<&Name>
pub fn as_name(&self) -> Option<&Name>
Returns a reference to the Name if this is Object::Name.
Sourcepub fn as_array(&self) -> Option<&[Object]>
pub fn as_array(&self) -> Option<&[Object]>
Returns a reference to the array if this is Object::Array.
Sourcepub fn as_dict(&self) -> Option<&HashMap<Name, Object>>
pub fn as_dict(&self) -> Option<&HashMap<Name, Object>>
Returns a reference to the dictionary if this is Object::Dictionary.
Sourcepub fn as_dictionary(&self) -> Option<&HashMap<Name, Object>>
pub fn as_dictionary(&self) -> Option<&HashMap<Name, Object>>
ADR-019 alias for as_dict().
Corresponds to CPDF_Object::AsDictionary.
Sourcepub fn as_stream_dict(&self) -> Option<&HashMap<Name, Object>>
pub fn as_stream_dict(&self) -> Option<&HashMap<Name, Object>>
Returns a reference to the stream dictionary if this is Object::Stream.
Sourcepub fn as_reference(&self) -> Option<ObjectId>
pub fn as_reference(&self) -> Option<ObjectId>
Returns the ObjectId if this is Object::Reference.
Sourcepub fn as_dict_mut(&mut self) -> Option<&mut HashMap<Name, Object>>
pub fn as_dict_mut(&mut self) -> Option<&mut HashMap<Name, Object>>
Returns a mutable reference to the dictionary if this is Object::Dictionary.
Sourcepub fn as_array_mut(&mut self) -> Option<&mut Vec<Object>>
pub fn as_array_mut(&mut self) -> Option<&mut Vec<Object>>
Returns a mutable reference to the array if this is Object::Array.
Sourcepub fn is_reference(&self) -> bool
pub fn is_reference(&self) -> bool
Returns true if this is Object::Reference.
Sourcepub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
Returns true if this is Object::Boolean.
Corresponds to CPDF_Object::IsBoolean() in PDFium.
Sourcepub fn is_number(&self) -> bool
pub fn is_number(&self) -> bool
Returns true if this is Object::Integer or Object::Real.
Corresponds to CPDF_Object::IsNumber() in PDFium.
Sourcepub fn is_string(&self) -> bool
pub fn is_string(&self) -> bool
Returns true if this is Object::String.
Corresponds to CPDF_Object::IsString() in PDFium.
Sourcepub fn is_name(&self) -> bool
pub fn is_name(&self) -> bool
Returns true if this is Object::Name.
Corresponds to CPDF_Object::IsName() in PDFium.
Sourcepub fn is_array(&self) -> bool
pub fn is_array(&self) -> bool
Returns true if this is Object::Array.
Corresponds to CPDF_Object::IsArray() in PDFium.
Sourcepub fn is_dictionary(&self) -> bool
pub fn is_dictionary(&self) -> bool
Returns true if this is Object::Dictionary.
Corresponds to CPDF_Object::IsDictionary() in PDFium.
Sourcepub fn is_stream(&self) -> bool
pub fn is_stream(&self) -> bool
Returns true if this is Object::Stream.
Corresponds to CPDF_Object::IsStream() in PDFium.
Sourcepub fn get_integer(&self) -> Option<i64>
pub fn get_integer(&self) -> Option<i64>
Upstream-aligned alias for Self::as_i64().
Returns the integer value if this is Object::Integer.
Corresponds to CPDF_Object::GetInteger() in PDFium.
Sourcepub fn get_number(&self) -> Option<f64>
pub fn get_number(&self) -> Option<f64>
Upstream-aligned alias for Self::as_f64().
Returns the numeric value as f64 for Object::Real or Object::Integer.
Corresponds to CPDF_Object::GetNumber() in PDFium.
Sourcepub fn get_string(&self) -> Option<&PdfString>
pub fn get_string(&self) -> Option<&PdfString>
Upstream-aligned alias for Self::as_string().
Returns a reference to the PdfString if this is Object::String.
Corresponds to CPDF_Object::GetString() in PDFium.
Sourcepub fn unicode_text(&self) -> Option<String>
pub fn unicode_text(&self) -> Option<String>
Returns the string value decoded to a UTF-8 String, if this is a
Object::String or Object::Name.
Corresponds to CPDF_Object::GetUnicodeText() in PDFium.
Sourcepub fn get_unicode_text(&self) -> Option<String>
pub fn get_unicode_text(&self) -> Option<String>
Upstream-aligned alias for Self::unicode_text().
Corresponds to CPDF_Object::GetUnicodeText() in PDFium.
Sourcepub fn is_integer(&self) -> bool
pub fn is_integer(&self) -> bool
Returns true if this is Object::Integer (a whole number, not real).
Corresponds to CPDF_Number::IsInteger() in PDFium.
Sourcepub fn ref_obj_num(&self) -> Option<u32>
pub fn ref_obj_num(&self) -> Option<u32>
Returns the object number of the indirect reference if this is
Object::Reference.
Corresponds to CPDF_Reference::GetRefObjNum() in PDFium.
Sourcepub fn get_ref_obj_num(&self) -> Option<u32>
pub fn get_ref_obj_num(&self) -> Option<u32>
Upstream-aligned alias for Self::ref_obj_num().
Corresponds to CPDF_Reference::GetRefObjNum() in PDFium.
Sourcepub fn raw_size(&self) -> Option<u64>
pub fn raw_size(&self) -> Option<u64>
Returns the raw (encoded) byte size of the stream data if this is
Object::Stream.
- For
StreamData::Raw, returns thelengthstored at parse time. - For
StreamData::Decoded, returns the byte length of the in-memory buffer.
Corresponds to CPDF_Stream::GetRawSize() in PDFium.
Sourcepub fn get_raw_size(&self) -> Option<u64>
pub fn get_raw_size(&self) -> Option<u64>
Upstream-aligned alias for Self::raw_size().
Corresponds to CPDF_Stream::GetRawSize() in PDFium.
Sourcepub fn has_filter(&self) -> bool
pub fn has_filter(&self) -> bool
Returns true if this stream has a /Filter entry in its dictionary.
Corresponds to CPDF_Stream::HasFilter() in PDFium.
Sourcepub fn array_len(&self) -> Option<usize>
pub fn array_len(&self) -> Option<usize>
Returns the number of elements if this is Object::Array, otherwise None.
Corresponds to CPDF_Array::size() in PDFium.
Sourcepub fn array_size(&self) -> Option<usize>
👎Deprecated since 0.0.0: use array_len()
pub fn array_size(&self) -> Option<usize>
use array_len()
Variant name for Self::array_len().
Corresponds to CPDF_Array::size() in PDFium, but the exact snake_case
of that method is size(), which would be ambiguous on the unified Object
type. Use array_len() instead.
Sourcepub fn array_is_empty(&self) -> bool
pub fn array_is_empty(&self) -> bool
Returns true if this is an Object::Array with no elements.
Corresponds to CPDF_Array::IsEmpty() in PDFium.
Sourcepub fn dict_len(&self) -> Option<usize>
pub fn dict_len(&self) -> Option<usize>
Returns the number of key–value pairs if this is Object::Dictionary,
otherwise None.
Corresponds to CPDF_Dictionary::size() in PDFium.
Sourcepub fn dict_size(&self) -> Option<usize>
👎Deprecated since 0.0.0: use dict_len()
pub fn dict_size(&self) -> Option<usize>
use dict_len()
Variant name for Self::dict_len().
Corresponds to CPDF_Dictionary::size() in PDFium, but the exact snake_case
of that method is size(), which would be ambiguous on the unified Object
type. Use dict_len() instead.
Sourcepub fn key_exist(&self, key: &Name) -> bool
pub fn key_exist(&self, key: &Name) -> bool
Returns true if the dictionary contains key.
Returns false for non-dictionary objects.
Corresponds to CPDF_Dictionary::KeyExist() in PDFium.
Sourcepub fn keys(&self) -> Option<Vec<&Name>>
pub fn keys(&self) -> Option<Vec<&Name>>
Returns the list of keys if this is Object::Dictionary, otherwise None.
Corresponds to CPDF_Dictionary::GetKeys() in PDFium.
Sourcepub fn get_keys(&self) -> Option<Vec<&Name>>
pub fn get_keys(&self) -> Option<Vec<&Name>>
Upstream-aligned alias for Self::keys().
Corresponds to CPDF_Dictionary::GetKeys() in PDFium.