pub struct GenericRecordBuilder<T: MarcRecord> { /* private fields */ }Expand description
Generic builder for constructing MARC records of any type.
This builder uses the MarcRecord trait to provide a unified interface for
building any MARC record type (bibliographic, authority, or holdings).
It accepts a function to create a new record and provides fluent methods for
adding control fields and data fields.
§Examples
ⓘ
use mrrc::{GenericRecordBuilder, Record, AuthorityRecord, Leader, Field};
// Build a bibliographic Record
let record = GenericRecordBuilder::new(Record::new(Leader::default()))
.control_field("001", "12345")
.control_field("003", "OCoLC")
.build();
// Build an AuthorityRecord - same interface!
let auth = GenericRecordBuilder::new(AuthorityRecord::new(Leader::default()))
.control_field("001", "auth001")
.control_field("003", "DLC")
.build();Implementations§
Source§impl<T: MarcRecord> GenericRecordBuilder<T>
impl<T: MarcRecord> GenericRecordBuilder<T>
Sourcepub fn record_mut(&mut self) -> &mut T
pub fn record_mut(&mut self) -> &mut T
Get a mutable reference to the underlying record.
This allows modifying the record directly before building it. Useful for accessing record-type-specific methods.
§Examples
ⓘ
use mrrc::{GenericRecordBuilder, Record, Leader, Field};
let field = Field::new("245".to_string(), '1', '0');
let mut builder = GenericRecordBuilder::new(Record::new(Leader::default()))
.control_field("001", "12345");
builder.record_mut().add_field(field);Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for GenericRecordBuilder<T>where
T: Freeze,
impl<T> RefUnwindSafe for GenericRecordBuilder<T>where
T: RefUnwindSafe,
impl<T> Send for GenericRecordBuilder<T>where
T: Send,
impl<T> Sync for GenericRecordBuilder<T>where
T: Sync,
impl<T> Unpin for GenericRecordBuilder<T>where
T: Unpin,
impl<T> UnsafeUnpin for GenericRecordBuilder<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for GenericRecordBuilder<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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