Skip to main content

Skill

Struct Skill 

Source
pub struct Skill<'a> { /* private fields */ }
Expand description

A reusable instruction that gets injected into LLM prompts.

Skills provide persistent context — domain rules, coding conventions, or any instruction the LLM should follow across all prompts.

Implementations§

Source§

impl<'a> Skill<'a>

Source

pub fn new() -> Self

Create a new empty skill.

Source

pub fn instruct(self, label: &'a str, instruction: &'a str) -> Self

Add an instruction with default priority (128).

Source

pub fn instruct_at( self, label: &'a str, instruction: &'a str, priority: u8, ) -> Self

Add an instruction with explicit priority (lower = earlier in prompt).

Source

pub fn instruct_owned(self, label: String, instruction: String) -> Self

Add an instruction from owned strings with default priority (128).

Source

pub fn instruct_owned_at( self, label: String, instruction: String, priority: u8, ) -> Self

Add an instruction from owned strings with explicit priority.

Source

pub fn render(&self) -> String

Render all instructions into a prompt section.

Instructions are sorted by priority (lowest first). Returns an empty string if there are no instructions.

Source

pub fn instruct_if( self, cond: bool, label: &'a str, instruction: &'a str, ) -> Self

Conditionally add an instruction.

Only adds the instruction if cond is true.

Source

pub fn merge(self, other: &Skill<'a>) -> Self

Merge another skill into this one.

Instructions from other are appended. If other has an instruction with the same label as one already in self, the one from other replaces it (last-writer-wins).

Source

pub fn len(&self) -> usize

Number of instructions.

Source

pub fn is_empty(&self) -> bool

Check if there are no instructions.

Trait Implementations§

Source§

impl<'a> Default for Skill<'a>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<'a> Freeze for Skill<'a>

§

impl<'a> RefUnwindSafe for Skill<'a>

§

impl<'a> Send for Skill<'a>

§

impl<'a> Sync for Skill<'a>

§

impl<'a> Unpin for Skill<'a>

§

impl<'a> UnsafeUnpin for Skill<'a>

§

impl<'a> UnwindSafe for Skill<'a>

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> 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> 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, 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.