pub enum BaseType {
Show 20 variants
Unit,
Bool,
Int,
Float,
Length,
String,
InlineText,
BlockText,
MathText,
MathBoxes,
Image,
InlineBoxes,
BlockBoxes,
Context,
Document,
PrePath,
Path,
Graphics,
Font,
TextInfo,
}Expand description
Primitive types with no internal structure — the subset of v0.0.6’s
base_type (types.cppo.ml:255) that this port’s primitives
need. (EnvType/RegExpType/InputPosType are unused and left out;
add them when a primitive needs them.)
Variants§
Unit
Bool
Int
Float
Length
String
InlineText
inline-text (v0.0.6: TextRowType).
BlockText
block-text (v0.0.6: TextColType).
MathText
math (v0.0.6: MathType) — quoted math text. Reused, unmodified,
as V0_1’s math-text (upstream literally renamed 0.0.6’s math);
see MathBoxes for the new V0_1-only half of the split.
MathBoxes
math-boxes (V0_1 only; dev-0-1-0 MathBoxesType) — the
evaluated math tree, bridged from MathText by the V0_1 primitive
read-math. 0.0.6 has no name for this type (its math conflates
both halves) and no value ever types as this under V0_0.
Image
image (v0.0.6: ImageType) — a decoded raster image resource
(load-image’s result).
InlineBoxes
inline-boxes (v0.0.6: BoxRowType).
BlockBoxes
block-boxes (v0.0.6: BoxColType).
Context
Document
PrePath
pre-path (v0.0.6: PrePathType).
Path
path (v0.0.6: PathType).
Graphics
graphics (v0.0.6: GraphicsType).
Font
font (V0_1 only; upstream saphe-split
types.cppo.ml’s FontType, registered in that generation’s
base_type_hash_table as ("font", FontType) and spelled tFONTKEY
in primitives.cppo.ml:45) — an OPAQUE handle on one loaded face.
Its value is Value::Font, a
rustyfi_backend::FontKey index into the metrics provider’s font
store, matching upstream’s BCFontKey of FontKey.t.
0.0.6 has no such type at all — verified against upstream
v0.0.6 src/frontend/types.cppo.ml:280-303, whose
base_type_hash_table has no "font" row, and against
lib-satysfi/dist/packages/*.satyh, which declare no type font
either. What 0.0.6 calls “a font” is the bare product
string * float * float (primitives.cppo.ml:69’s tFONT = tPROD [tS; tFL; tFL]), whose head is an ABBREV naming a row of
dist/hash/fonts.satysfi-hash. So under V0_0 the NAME font
falls through name_to_mono to the opaque user-nominal
Variant("font", []) — an unrelated type that happens to share a
spelling. That disagreement is exactly what keeps font inside
typecheck::forked_type_names(), and it is a REPRESENTATION fork,
not a missing feature: see v1::xver_adapt::forked_note.
TextInfo
text-info (v0.0.6: TextInfoType) — the text-mode context
(deepen-indent/get-initial-text-info/break; sliver — see
primitives.rs for the scoping note: the text/html backends
themselves are out of scope).
Implementations§
Trait Implementations§
impl Copy for BaseType
impl Eq for BaseType
Source§impl Ord for BaseType
impl Ord for BaseType
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for BaseType
impl PartialOrd for BaseType
impl StructuralPartialEq for BaseType
Auto Trait Implementations§
impl Freeze for BaseType
impl RefUnwindSafe for BaseType
impl Send for BaseType
impl Sync for BaseType
impl Unpin for BaseType
impl UnsafeUnpin for BaseType
impl UnwindSafe for BaseType
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> Copy for Twhere
T: Copy,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
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> ⓘ
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