Remove the std::Option around UnpublishedOperation::data

The Option is unnecessary now since `UnpublishedOperation` doesn't implement
the Drop trait (the `MustClose` member implements it instead).
This commit is contained in:
Evan Mesterhazy 2024-03-01 12:21:41 -05:00 committed by Evan Mesterhazy
parent 962b188b76
commit c4cbf25545

View file

@ -173,7 +173,7 @@ struct NewRepoData {
#[must_use = "Either publish() or leave_unpublished() must be called to finish the operation."]
pub struct UnpublishedOperation {
repo_loader: RepoLoader,
data: Option<NewRepoData>,
data: NewRepoData,
}
impl UnpublishedOperation {
@ -183,20 +183,22 @@ impl UnpublishedOperation {
view: View,
index: Box<dyn ReadonlyIndex>,
) -> Self {
let data = Some(NewRepoData {
operation,
view,
index,
});
UnpublishedOperation { repo_loader, data }
UnpublishedOperation {
repo_loader,
data: NewRepoData {
operation,
view,
index,
},
}
}
pub fn operation(&self) -> &Operation {
&self.data.as_ref().unwrap().operation
&self.data.operation
}
pub fn publish(mut self) -> Arc<ReadonlyRepo> {
let data = self.data.take().unwrap();
pub fn publish(self) -> Arc<ReadonlyRepo> {
let data = self.data;
{
let _lock = self.repo_loader.op_heads_store().lock();
self.repo_loader
@ -207,9 +209,8 @@ impl UnpublishedOperation {
.create_from(data.operation, data.view, data.index)
}
pub fn leave_unpublished(mut self) -> Arc<ReadonlyRepo> {
let data = self.data.take().unwrap();
pub fn leave_unpublished(self) -> Arc<ReadonlyRepo> {
self.repo_loader
.create_from(data.operation, data.view, data.index)
.create_from(self.data.operation, self.data.view, self.data.index)
}
}