OpenAIContentPart

Enum OpenAIContentPart 

Source
pub enum OpenAIContentPart {
    Text {
        text: String,
    },
    ImageUrl {
        image_url: OpenAIImageUrl,
    },
}
Expand description

A single content part in an OpenAI message.

Can be either text or an image URL. This is a tagged enum that prevents invalid states (e.g., having both text and image_url, or neither).

Variants§

§

Text

Text content part

Fields

§text: String

The text content

§

ImageUrl

Image URL content part

Fields

§image_url: OpenAIImageUrl

The image URL details

Implementations§

Source§

impl OpenAIContentPart

Source

pub fn text(text: impl Into<String>) -> Self

Creates a text content part.

§Example
use open_agent::OpenAIContentPart;

let part = OpenAIContentPart::text("Hello world");
Source

pub fn from_image(image: &ImageBlock) -> Self

Creates an image content part from a validated ImageBlock.

This is the preferred way to create image content parts as it ensures the image URL has been validated against security issues (XSS, file disclosure, etc.)

§Example
use open_agent::{OpenAIContentPart, ImageBlock, ImageDetail};

let image = ImageBlock::from_url("https://example.com/img.jpg")
    .expect("Valid URL");
let part = OpenAIContentPart::from_image(&image);
Source

pub fn image_url(url: impl Into<String>, detail: ImageDetail) -> Self

👎Deprecated since 0.6.0: Use from_image() instead to ensure proper validation

Creates an image URL content part directly (DEPRECATED).

§Security Warning

This method bypasses validation checks performed by ImageBlock::from_url() and ImageBlock::from_base64(). Prefer using from_image() instead.

§Deprecation

This method is deprecated and will be removed in v1.0. Use from_image() instead.

§Example
use open_agent::{OpenAIContentPart, ImageDetail};

// Deprecated approach:
let part = OpenAIContentPart::image_url("https://example.com/img.jpg", ImageDetail::High);

// Preferred approach:
use open_agent::ImageBlock;
let image = ImageBlock::from_url("https://example.com/img.jpg").expect("Valid URL");
let part = OpenAIContentPart::from_image(&image);

Trait Implementations§

Source§

impl Clone for OpenAIContentPart

Source§

fn clone(&self) -> OpenAIContentPart

Returns a duplicate 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 Debug for OpenAIContentPart

Source§

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

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

impl<'de> Deserialize<'de> for OpenAIContentPart

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for OpenAIContentPart

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,