pub struct OpSig {
pub name: String,
pub type_params: Vec<String>,
pub params: Vec<(String, TyId)>,
pub return_ty: TyId,
}Expand description
P6.12’s real OpSig ([DECISION A], #1173) — referenced by the
reference’s own IrItem::Capability sketch
(bynk-greenfield-compiler.md:1134, ops: Vec<OpSig>) but never
defined anywhere in the document — the same “referenced, not specified”
gap #1161’s own Decision C named for EmbedIr, #1163’s own Decision C
named for IndexIr, #1165’s own Decision A named for IrPredicate,
and #1167’s own Decision A named for ActorBinder. Adapted from
bynk_syntax::ast::CapabilityOp — a signature only, no body — under
this module’s already-established “no arena” substitutions: params: Vec<(String, TyId)> mirrors IrItem::Fn::params exactly (Decision E,
#1161), and type_params: Vec<String> mirrors the checker’s own
already-resolved CapabilityOpInfo::type_params
(bynk-check/src/checker.rs) — a bare rigid-variable name, not a
TypeParam AST node, since nothing here re-derives bounds a capability
op’s own [T, …] list never carries in the first place (#926).
bynk_lower::lower_op_sig_ir resolves params/return_ty in the scope
type_params names, mirroring context_checks::build_capability_op_info’s
own vars treatment (bynk-check/src/context_checks.rs) so a generic
op’s own T survives as Ty::Var("T") rather than collapsing to
Ty::Unit. On a genuinely unresolvable name a params/return_ty entry
is Ty::Unit, deliberately — see bynk_lower::lower_op_sig_ir’s own doc
comment for why that mirrors the checker’s own fallback rather than
panicking.
Fields§
§name: String§type_params: Vec<String>The op’s own type parameters (#926) — empty for a non-generic op.
Scoped to the op itself, not the capability: CapabilityDecl carries
no type_params of its own (bynk-syntax/src/ast.rs:556-562), so
this is never merged with anything above it, unlike
IrItem::Fn::receiver’s generic-receiver treatment for a method.
params: Vec<(String, TyId)>§return_ty: TyIdTrait Implementations§
Auto Trait Implementations§
impl Freeze for OpSig
impl RefUnwindSafe for OpSig
impl Send for OpSig
impl Sync for OpSig
impl Unpin for OpSig
impl UnsafeUnpin for OpSig
impl UnwindSafe for OpSig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);