lm_studio_api/chat/
message.rs1use crate::prelude::*;
2use super::Role;
3
4#[derive(Debug, Clone, From, Serialize, Deserialize, Eq, PartialEq)]
6#[from(String, "Self { role: Role::User, content: value.into() }")]
7#[from(&str, "Self { role: Role::User, content: value.into() }")]
8pub struct Message {
9 pub role: Role,
10 pub content: String,
11}
12
13impl Message {
14 pub fn new<S: Into<String>>(role: Role, content: S) -> Self {
16 Self {
17 role,
18 content: content.into(),
19 }
20 }
21
22 pub fn len(&self) -> usize {
24 self.content.chars().count()
25 }
26
27 pub fn text(&self) -> &String {
29 &self.content
30 }
31}