@@ -7,7 +7,8 @@ use crate::one::property_set::PropertySetId;
77use crate :: onestore:: object:: Object ;
88use crate :: shared:: exguid:: ExGuid ;
99use crate :: shared:: guid:: Guid ;
10- use parser_utils:: errors:: { ErrorKind , Result } ;
10+ use parser_utils:: errors:: Result ;
11+ use parser_utils:: log_warn;
1112
1213/// A section.
1314///
@@ -18,6 +19,7 @@ use parser_utils::errors::{ErrorKind, Result};
1819#[ allow( dead_code) ]
1920pub ( crate ) struct Data {
2021 //pub(crate) context_id: ExGuid, // Removed -- but may be necessary
22+ /// Used for creating links to sections. If not present, defaults to `Guid::nil`.
2123 pub ( crate ) entity_guid : Guid ,
2224 pub ( crate ) page_series : Vec < ExGuid > ,
2325 pub ( crate ) created_at : Timestamp ,
@@ -32,13 +34,14 @@ pub(crate) fn parse(object: Rc<Object>) -> Result<Data> {
3234
3335 let object = object. as_ref ( ) ;
3436 let entity_guid = simple:: parse_guid ( PropertyType :: NotebookManagementEntityGuid , object) ?
35- . ok_or_else ( || ErrorKind :: MalformedOneNoteFileData ( "section has no guid" . into ( ) ) ) ?;
37+ . unwrap_or_else ( || {
38+ log_warn ! ( "Section: Missing entity GUID" ) ;
39+ Guid :: nil ( )
40+ } ) ;
3641 let page_series =
3742 ObjectReference :: parse_vec ( PropertyType :: ElementChildNodes , object) ?. unwrap_or_default ( ) ;
3843 let created_at = Timestamp :: parse ( PropertyType :: TopologyCreationTimeStamp , object) ?
39- . ok_or_else ( || {
40- ErrorKind :: MalformedOneNoteFileData ( "section has no creation timestamp" . into ( ) )
41- } ) ?;
44+ . ok_or_else ( || parser_error ! ( MalformedOneNoteData , "Section has no creation timestamp" ) ) ?;
4245
4346 let data = Data {
4447 //context_id,
0 commit comments