Struct EnumElem

Source
pub struct EnumElem {
    pub children: Vec<Packed<EnumItem>>,
    /* private fields */
}
Expand description

A numbered list.

Displays a sequence of items vertically and numbers them consecutively.

§Example

Automatically numbered:
+ Preparations
+ Analysis
+ Conclusions

Manually numbered:
2. What is the first step?
5. I am confused.
+  Moving on ...

Multiple lines:
+ This enum item has multiple
  lines because the next line
  is indented.

Function call.
#enum[First][Second]

You can easily switch all your enumerations to a different numbering style with a set rule.

#set enum(numbering: "a)")

+ Starting off ...
+ Don't forget step two

You can also use enum.item to programmatically customize the number of each item in the enumeration:

#enum(
  enum.item(1)[First step],
  enum.item(5)[Fifth step],
  enum.item(10)[Tenth step]
)

§Syntax

This functions also has dedicated syntax:

  • Starting a line with a plus sign creates an automatically numbered enumeration item.
  • Starting a line with a number followed by a dot creates an explicitly numbered enumeration item.

Enumeration items can contain multiple paragraphs and other block-level content. All content that is indented more than an item’s marker becomes part of that item.

Fields§

§children: Vec<Packed<EnumItem>>

Implementations§

Source§

impl EnumElem

Source

pub fn new(children: Vec<Packed<EnumItem>>) -> EnumElem

Create a new instance of the element.

Source

pub fn with_tight(self, tight: bool) -> EnumElem

Builder-style setter for the tight field.

Source

pub fn with_numbering(self, numbering: Numbering) -> EnumElem

Builder-style setter for the numbering field.

Source

pub fn with_start(self, start: Smart<usize>) -> EnumElem

Builder-style setter for the start field.

Source

pub fn with_full(self, full: bool) -> EnumElem

Builder-style setter for the full field.

Source

pub fn with_reversed(self, reversed: bool) -> EnumElem

Builder-style setter for the reversed field.

Source

pub fn with_indent(self, indent: Length) -> EnumElem

Builder-style setter for the indent field.

Source

pub fn with_body_indent(self, body_indent: Length) -> EnumElem

Builder-style setter for the body-indent field.

Source

pub fn with_spacing(self, spacing: Smart<Length>) -> EnumElem

Builder-style setter for the spacing field.

Source

pub fn with_number_align(self, number_align: Alignment) -> EnumElem

Builder-style setter for the number-align field.

Source

pub fn push_tight(&mut self, tight: bool)

Setter for the tight field.

Source

pub fn push_numbering(&mut self, numbering: Numbering)

Setter for the numbering field.

Source

pub fn push_start(&mut self, start: Smart<usize>)

Setter for the start field.

Source

pub fn push_full(&mut self, full: bool)

Setter for the full field.

Source

pub fn push_reversed(&mut self, reversed: bool)

Setter for the reversed field.

Source

pub fn push_indent(&mut self, indent: Length)

Setter for the indent field.

Source

pub fn push_body_indent(&mut self, body_indent: Length)

Setter for the body-indent field.

Source

pub fn push_spacing(&mut self, spacing: Smart<Length>)

Setter for the spacing field.

Source

pub fn push_number_align(&mut self, number_align: Alignment)

Setter for the number-align field.

Source

pub fn tight(&self, styles: StyleChain<'_>) -> bool

Defines the default spacing of the enumeration. If it is {false}, the items are spaced apart with paragraph spacing. If it is {true}, they use paragraph leading instead. This makes the list more compact, which can look better if the items are short.

In markup mode, the value of this parameter is determined based on whether items are separated with a blank line. If items directly follow each other, this is set to {true}; if items are separated by a blank line, this is set to {false}. The markup-defined tightness cannot be overridden with set rules.

+ If an enum has a lot of text, and
  maybe other inline content, it
  should not be tight anymore.

+ To make an enum wide, simply
  insert a blank line between the
  items.
Source

pub fn numbering<'a>(&'a self, styles: StyleChain<'a>) -> &'a Numbering

How to number the enumeration. Accepts a numbering pattern or function.

If the numbering pattern contains multiple counting symbols, they apply to nested enums. If given a function, the function receives one argument if full is {false} and multiple arguments if full is {true}.

#set enum(numbering: "1.a)")
+ Different
+ Numbering
  + Nested
  + Items
+ Style

#set enum(numbering: n => super[#n])
+ Superscript
+ Numbering!
Source

pub fn start(&self, styles: StyleChain<'_>) -> Smart<usize>

Which number to start the enumeration with.

#enum(
  start: 3,
  [Skipping],
  [Ahead],
)
Source

pub fn full(&self, styles: StyleChain<'_>) -> bool

Whether to display the full numbering, including the numbers of all parent enumerations.

#set enum(numbering: "1.a)", full: true)
+ Cook
  + Heat water
  + Add ingredients
+ Eat
Source

pub fn reversed(&self, styles: StyleChain<'_>) -> bool

Whether to reverse the numbering for this enumeration.

#set enum(reversed: true)
+ Coffee
+ Tea
+ Milk
Source

pub fn indent(&self, styles: StyleChain<'_>) -> <Length as Resolve>::Output

The indentation of each item.

Source

pub fn body_indent(&self, styles: StyleChain<'_>) -> <Length as Resolve>::Output

The space between the numbering and the body of each item.

Source

pub fn spacing(&self, styles: StyleChain<'_>) -> Smart<Length>

The spacing between the items of the enumeration.

If set to {auto}, uses paragraph leading for tight enumerations and paragraph spacing for wide (non-tight) enumerations.

Source

pub fn number_align(&self, styles: StyleChain<'_>) -> Alignment

The alignment that enum numbers should have.

By default, this is set to {end + top}, which aligns enum numbers towards end of the current text direction (in left-to-right script, for example, this is the same as {right}) and at the top of the line. The choice of {end} for horizontal alignment of enum numbers is usually preferred over {start}, as numbers then grow away from the text instead of towards it, avoiding certain visual issues. This option lets you override this behaviour, however. (Also to note is that the unordered list uses a different method for this, by giving the marker content an alignment directly.).

#set enum(number-align: start + bottom)

Here are some powers of two:
1. One
2. Two
4. Four
8. Eight
16. Sixteen
32. Thirty two
Source

pub fn tight_in(styles: StyleChain<'_>) -> bool

Access the tight field in the given style chain.

Source

pub fn numbering_in(styles: StyleChain<'_>) -> &Numbering

Access the numbering field in the given style chain.

Source

pub fn start_in(styles: StyleChain<'_>) -> Smart<usize>

Access the start field in the given style chain.

Source

pub fn full_in(styles: StyleChain<'_>) -> bool

Access the full field in the given style chain.

Source

pub fn reversed_in(styles: StyleChain<'_>) -> bool

Access the reversed field in the given style chain.

Source

pub fn indent_in(styles: StyleChain<'_>) -> <Length as Resolve>::Output

Access the indent field in the given style chain.

Source

pub fn body_indent_in(styles: StyleChain<'_>) -> <Length as Resolve>::Output

Access the body-indent field in the given style chain.

Source

pub fn spacing_in(styles: StyleChain<'_>) -> Smart<Length>

Access the spacing field in the given style chain.

Source

pub fn number_align_in(styles: StyleChain<'_>) -> Alignment

Access the number-align field in the given style chain.

Source

pub fn parents_in(styles: StyleChain<'_>) -> SmallVec<[usize; 4]>

Access the parents field in the given style chain.

Source

pub fn set_tight(tight: bool) -> Property

Create a style property for the tight field.

Source

pub fn set_numbering(numbering: Numbering) -> Property

Create a style property for the numbering field.

Source

pub fn set_start(start: Smart<usize>) -> Property

Create a style property for the start field.

Source

pub fn set_full(full: bool) -> Property

Create a style property for the full field.

Source

pub fn set_reversed(reversed: bool) -> Property

Create a style property for the reversed field.

Source

pub fn set_indent(indent: Length) -> Property

Create a style property for the indent field.

Source

pub fn set_body_indent(body_indent: Length) -> Property

Create a style property for the body-indent field.

Source

pub fn set_spacing(spacing: Smart<Length>) -> Property

Create a style property for the spacing field.

Source

pub fn set_number_align(number_align: Alignment) -> Property

Create a style property for the number-align field.

Source

pub fn set_parents(parents: SmallVec<[usize; 4]>) -> Property

Create a style property for the parents field.

Trait Implementations§

Source§

impl Capable for EnumElem

Source§

fn vtable(capability: TypeId) -> Option<NonNull<()>>

Get the pointer to the vtable for the given capability / trait.
Source§

impl Clone for EnumElem

Source§

fn clone(&self) -> EnumElem

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Construct for EnumElem

Source§

fn construct( engine: &mut Engine<'_>, args: &mut Args, ) -> Result<Content, EcoVec<SourceDiagnostic>>

Construct an element from the arguments. Read more
Source§

impl Debug for EnumElem

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Fields for EnumElem

Source§

type Enum = Fields

An enum with the fields of the element.
Source§

fn has(&self, id: u8) -> bool

Whether the element has the given field set.
Source§

fn field(&self, id: u8) -> Result<Value, FieldAccessError>

Get the field with the given field ID.
Source§

fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID in the presence of styles.
Source§

fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID from the styles.
Source§

fn materialize(&mut self, styles: StyleChain<'_>)

Resolve all fields with the styles and save them in-place.
Source§

fn fields(&self) -> Dict

Get the fields of the element.
Source§

impl Hash for EnumElem

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoValue for EnumElem

Source§

fn into_value(self) -> Value

Cast this type into a value.
Source§

impl ListLike for EnumElem

Source§

type Item = EnumItem

The kind of list item this list is composed of.
Source§

fn create( children: Vec<Packed<<EnumElem as ListLike>::Item>>, tight: bool, ) -> EnumElem

Create this kind of list from its children and tightness.
Source§

impl NativeElement for EnumElem

Source§

fn data() -> &'static NativeElementData

Get the element data for the native Rust element.
Source§

fn elem() -> Element
where Self: Sized,

Get the element for the native Rust element.
Source§

fn pack(self) -> Content
where Self: Sized,

Pack the element into type-erased content.
Source§

impl NativeScope for EnumElem

Source§

fn constructor() -> Option<&'static NativeFuncData>

The constructor function for the type, if any.
Source§

fn scope() -> Scope

Get the associated scope for the type.
Source§

impl PartialEq for EnumElem

Source§

fn eq(&self, other: &EnumElem) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Repr for EnumElem

Source§

fn repr(&self) -> EcoString

Return the debug representation of the value.
Source§

impl Set for EnumElem

Source§

fn set( engine: &mut Engine<'_>, args: &mut Args, ) -> Result<Styles, EcoVec<SourceDiagnostic>>

Parse relevant arguments into style properties for this element.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> Filterable for T

Source§

fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>

Creates a filterable data provider with the given name for debugging. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> IntoResult for T
where T: IntoValue,

Source§

fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>

Cast this type into a value.
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T
where T: Send + Sync,