pub enum PublishBlocker {
PageInMissingChapter {
page: EntityRef,
chapter_id: Uuid,
},
DuplicatePath {
url_path: String,
pages: Vec<EntityRef>,
},
DuplicatePageOrderNumber {
chapter: Option<EntityRef>,
order_number: i32,
pages: Vec<EntityRef>,
},
ChapterInMissingModule {
chapter: EntityRef,
module_id: Uuid,
},
MissingFrontPage {
chapter: EntityRef,
front_page_id: Uuid,
},
FrontPageInOtherChapter {
chapter: EntityRef,
front_page: EntityRef,
},
FrontPageOffPath {
chapter: EntityRef,
front_page: EntityRef,
url_path: String,
expected_url_path: String,
},
DuplicateChapterNumber {
chapter_number: i32,
chapters: Vec<EntityRef>,
},
DuplicateModuleOrderNumber {
order_number: i32,
modules: Vec<EntityRef>,
},
}Expand description
A rule publishing relies on that a course state breaks. Pages, chapters and modules are named as the state has them.
Variants§
PageInMissingChapter
The page is in a chapter the course doesn’t have.
DuplicatePath
The pages share a path, which must be unique in the course.
DuplicatePageOrderNumber
The pages share a position in their chapter, or among the top-level pages with no
chapter.
ChapterInMissingModule
The chapter is in a module the course doesn’t have.
MissingFrontPage
The chapter’s front page is a page the course doesn’t have.
FrontPageInOtherChapter
The chapter’s front page is in another chapter.
FrontPageOffPath
The chapter’s front page isn’t at the path its chapter number gives it.
DuplicateChapterNumber
The chapters share a number, which must be unique in the course.
DuplicateModuleOrderNumber
The modules share an order number, which must be unique in the course.
Implementations§
Source§impl PublishBlocker
impl PublishBlocker
Sourcefn unlabelled(self) -> Self
fn unlabelled(self) -> Self
The blocker with every label left empty.
Trait Implementations§
Source§impl Clone for PublishBlocker
impl Clone for PublishBlocker
Source§fn clone(&self) -> PublishBlocker
fn clone(&self) -> PublishBlocker
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ComposeSchema for PublishBlocker
impl ComposeSchema for PublishBlocker
Source§impl Debug for PublishBlocker
impl Debug for PublishBlocker
Source§impl<'de> Deserialize<'de> for PublishBlocker
impl<'de> Deserialize<'de> for PublishBlocker
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for PublishBlocker
impl PartialEq for PublishBlocker
Source§impl Serialize for PublishBlocker
impl Serialize for PublishBlocker
Source§impl ToSchema for PublishBlocker
impl ToSchema for PublishBlocker
impl Eq for PublishBlocker
impl StructuralPartialEq for PublishBlocker
Auto Trait Implementations§
impl Freeze for PublishBlocker
impl RefUnwindSafe for PublishBlocker
impl Send for PublishBlocker
impl Sync for PublishBlocker
impl Unpin for PublishBlocker
impl UnsafeUnpin for PublishBlocker
impl UnwindSafe for PublishBlocker
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more