Struct App

Source
pub struct App { /* private fields */ }

Implementations§

Source§

impl App

Source

pub fn new() -> Self

Examples found in repository?
examples/app_macro_usage.rs (line 102)
83fn comparison_example() {
84    println!("\n=== 传统方式 vs app! 宏对比 ===");
85
86    println!("传统方式(较冗长):");
87    println!("App::new()");
88    println!("    .set_entry_file(\"main.ppl\")");
89    println!("    .add_plugin(BuiltinPlugin)");
90    println!("    .add_plugin(MathPlugin)");
91    println!("    .add_plugin(FormatStringPlugin)");
92    println!("    .run();");
93
94    println!("\n使用 app! 宏(简洁):");
95    println!("app!(\"main.ppl\", [BuiltinPlugin, MathPlugin, FormatStringPlugin])");
96    println!("    .run();");
97
98    // 实际创建两个等效的应用程序进行对比
99    use pipeline_script::core::app::App;
100
101    // 传统方式
102    let _traditional_app = App::new()
103        .set_entry_file("compare.ppl")
104        .add_plugin(BuiltinPlugin)
105        .add_plugin(MathPlugin);
106
107    // 使用宏
108    let _macro_app = app!("compare.ppl", [BuiltinPlugin, MathPlugin]);
109
110    println!("\n两种方式创建的应用程序功能完全相同!");
111}
Source

pub fn register_external_function(self, name: &str, func: *mut c_void) -> Self

Source

pub fn set_test_llvm(self, test: bool) -> Self

Examples found in repository?
examples/app_macro_usage.rs (line 33)
25fn chaining_example() {
26    println!("\n=== 链式调用示例 ===");
27
28    // 使用 app! 宏创建应用程序,然后链式调用其他配置方法
29    let _configured_app = app!(
30        "complex.ppl",
31        [BuiltinPlugin, FormatStringPlugin, MathPlugin, MapPlugin]
32    )
33    .set_test_llvm(true)
34    .add_test_llvm_file("test.ll");
35
36    // .run(); // 注释掉避免实际执行
37
38    println!("配置完成的应用程序:");
39    println!("  - 入口文件: 'complex.ppl'");
40    println!("  - 插件: BuiltinPlugin, FormatStringPlugin, MathPlugin, MapPlugin");
41    println!("  - LLVM测试: 已启用");
42    println!("  - 测试文件: 'test.ll'");
43}
Source

pub fn add_test_llvm_file(self, path: impl AsRef<Path>) -> Self

Examples found in repository?
examples/app_macro_usage.rs (line 34)
25fn chaining_example() {
26    println!("\n=== 链式调用示例 ===");
27
28    // 使用 app! 宏创建应用程序,然后链式调用其他配置方法
29    let _configured_app = app!(
30        "complex.ppl",
31        [BuiltinPlugin, FormatStringPlugin, MathPlugin, MapPlugin]
32    )
33    .set_test_llvm(true)
34    .add_test_llvm_file("test.ll");
35
36    // .run(); // 注释掉避免实际执行
37
38    println!("配置完成的应用程序:");
39    println!("  - 入口文件: 'complex.ppl'");
40    println!("  - 插件: BuiltinPlugin, FormatStringPlugin, MathPlugin, MapPlugin");
41    println!("  - LLVM测试: 已启用");
42    println!("  - 测试文件: 'test.ll'");
43}
Source

pub fn register_visitor(self, visitor: impl Visitor + 'static) -> Self

Source

pub fn add_plugin(self, plugin: impl Plugin) -> Self

Examples found in repository?
examples/app_macro_usage.rs (line 104)
83fn comparison_example() {
84    println!("\n=== 传统方式 vs app! 宏对比 ===");
85
86    println!("传统方式(较冗长):");
87    println!("App::new()");
88    println!("    .set_entry_file(\"main.ppl\")");
89    println!("    .add_plugin(BuiltinPlugin)");
90    println!("    .add_plugin(MathPlugin)");
91    println!("    .add_plugin(FormatStringPlugin)");
92    println!("    .run();");
93
94    println!("\n使用 app! 宏(简洁):");
95    println!("app!(\"main.ppl\", [BuiltinPlugin, MathPlugin, FormatStringPlugin])");
96    println!("    .run();");
97
98    // 实际创建两个等效的应用程序进行对比
99    use pipeline_script::core::app::App;
100
101    // 传统方式
102    let _traditional_app = App::new()
103        .set_entry_file("compare.ppl")
104        .add_plugin(BuiltinPlugin)
105        .add_plugin(MathPlugin);
106
107    // 使用宏
108    let _macro_app = app!("compare.ppl", [BuiltinPlugin, MathPlugin]);
109
110    println!("\n两种方式创建的应用程序功能完全相同!");
111}
Source

pub fn run(&mut self)

Source

pub fn set_entry_file(self, path: impl AsRef<Path>) -> Self

Examples found in repository?
examples/app_macro_usage.rs (line 103)
83fn comparison_example() {
84    println!("\n=== 传统方式 vs app! 宏对比 ===");
85
86    println!("传统方式(较冗长):");
87    println!("App::new()");
88    println!("    .set_entry_file(\"main.ppl\")");
89    println!("    .add_plugin(BuiltinPlugin)");
90    println!("    .add_plugin(MathPlugin)");
91    println!("    .add_plugin(FormatStringPlugin)");
92    println!("    .run();");
93
94    println!("\n使用 app! 宏(简洁):");
95    println!("app!(\"main.ppl\", [BuiltinPlugin, MathPlugin, FormatStringPlugin])");
96    println!("    .run();");
97
98    // 实际创建两个等效的应用程序进行对比
99    use pipeline_script::core::app::App;
100
101    // 传统方式
102    let _traditional_app = App::new()
103        .set_entry_file("compare.ppl")
104        .add_plugin(BuiltinPlugin)
105        .add_plugin(MathPlugin);
106
107    // 使用宏
108    let _macro_app = app!("compare.ppl", [BuiltinPlugin, MathPlugin]);
109
110    println!("\n两种方式创建的应用程序功能完全相同!");
111}

Trait Implementations§

Source§

impl Default for App

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for App

§

impl !RefUnwindSafe for App

§

impl !Send for App

§

impl !Sync for App

§

impl Unpin for App

§

impl !UnwindSafe for App

Blanket Implementations§

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> 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Paint for T
where T: ?Sized,

Source§

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();
Source§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
Source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
Source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
Source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
Source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
Source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
Source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
Source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
Source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
Source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
Source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
Source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
Source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
Source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
Source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
Source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
Source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
Source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
Source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
Source§

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();
Source§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
Source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
Source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
Source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
Source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
Source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
Source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
Source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
Source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
Source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
Source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
Source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
Source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
Source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
Source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
Source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
Source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
Source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
Source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
Source§

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();
Source§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
Source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
Source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
Source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
Source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
Source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
Source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
Source§

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();
Source§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
Source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
Source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
Source§

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.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
Source§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
Source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
Source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
Source§

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

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new Painted with a default Style. Read more
Source§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. 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.