#[non_exhaustive]pub struct BulkActionResult {
pub succeeded: usize,
pub failed: Vec<BulkActionFailure>,
pub message: Option<String>,
}Expand description
Outcome of a project-defined bulk action.
Two channels:
- The action itself failed (unknown action name, project
code panicked into a
Result::Err, DB connection lost). The dispatcher returnsErr(...)fromsuper::ModelAdmin::execute_bulk_action; the framework surfaces it as a 4xx / 5xx page. - The action ran but some rows failed (one of three loans
was already in the target state, an FK constraint
rejected one of the writes). The dispatcher returns
Ok(BulkActionResult)withfailedpopulated; the framework emits a partial-success audit row and the operator sees a per-id failure summary.
#[non_exhaustive] so future additions (e.g. a warnings
channel, a progress_handle for streaming) stay SemVer-safe.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.succeeded: usizeNumber of rows the project successfully applied the action to.
failed: Vec<BulkActionFailure>Per-row failure list. Empty for a clean run; one entry per row the project tried and couldn’t complete.
message: Option<String>Operator-facing summary line. None lets the framework
fall back to its default rendering
("<label>: <succeeded> of <total>").
Implementations§
Source§impl BulkActionResult
impl BulkActionResult
Sourcepub fn partial(succeeded: usize, failed: Vec<BulkActionFailure>) -> Self
pub fn partial(succeeded: usize, failed: Vec<BulkActionFailure>) -> Self
Mixed outcome — pair the survivor count with the per-id failure list.
Sourcepub fn with_message(self, message: impl Into<String>) -> Self
pub fn with_message(self, message: impl Into<String>) -> Self
Attach an operator-facing summary line. Builder-style for terse construction:
ⓘ
BulkActionResult::ok(12).with_message("Marked 12 loans overdue")Trait Implementations§
Source§impl Clone for BulkActionResult
impl Clone for BulkActionResult
Source§fn clone(&self) -> BulkActionResult
fn clone(&self) -> BulkActionResult
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BulkActionResult
impl Debug for BulkActionResult
Source§impl Default for BulkActionResult
impl Default for BulkActionResult
Source§fn default() -> BulkActionResult
fn default() -> BulkActionResult
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for BulkActionResult
impl RefUnwindSafe for BulkActionResult
impl Send for BulkActionResult
impl Sync for BulkActionResult
impl Unpin for BulkActionResult
impl UnsafeUnpin for BulkActionResult
impl UnwindSafe for BulkActionResult
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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