turbo_tasks/
primitives.rs1use std::{ops::Deref, time::Duration};
2
3use turbo_rcstr::RcStr;
4use turbo_tasks_macros::primitive as __turbo_tasks_internal_primitive;
6
7use crate::{
8 Vc, {self as turbo_tasks},
9};
10
11__turbo_tasks_internal_primitive!(());
12__turbo_tasks_internal_primitive!(String, manual_shrink_to_fit);
13__turbo_tasks_internal_primitive!(RcStr);
14__turbo_tasks_internal_primitive!(Option<String>);
15__turbo_tasks_internal_primitive!(Option<RcStr>);
16__turbo_tasks_internal_primitive!(Vec<RcStr>, manual_shrink_to_fit);
17__turbo_tasks_internal_primitive!(Option<u16>);
18__turbo_tasks_internal_primitive!(Option<u64>);
19__turbo_tasks_internal_primitive!(bool);
20__turbo_tasks_internal_primitive!(Option<bool>);
21__turbo_tasks_internal_primitive!(u8);
22__turbo_tasks_internal_primitive!(u16);
23__turbo_tasks_internal_primitive!(u32);
24__turbo_tasks_internal_primitive!(u64);
25__turbo_tasks_internal_primitive!(u128);
26__turbo_tasks_internal_primitive!(i8);
27__turbo_tasks_internal_primitive!(i16);
28__turbo_tasks_internal_primitive!(i32);
29__turbo_tasks_internal_primitive!(i64);
30__turbo_tasks_internal_primitive!(i128);
31__turbo_tasks_internal_primitive!(usize);
32__turbo_tasks_internal_primitive!(isize);
33__turbo_tasks_internal_primitive!(serde_json::Value);
34__turbo_tasks_internal_primitive!(Duration);
35__turbo_tasks_internal_primitive!(Vec<u8>, manual_shrink_to_fit);
36__turbo_tasks_internal_primitive!(Vec<bool>, manual_shrink_to_fit);
37
38#[turbo_tasks::value(transparent, eq = "manual")]
39#[derive(Debug, Clone)]
40pub struct Regex(
41 #[turbo_tasks(trace_ignore)]
42 #[serde(with = "serde_regex")]
43 pub regex::Regex,
44);
45
46impl Deref for Regex {
47 type Target = regex::Regex;
48
49 fn deref(&self) -> &Self::Target {
50 &self.0
51 }
52}
53
54impl PartialEq for Regex {
55 fn eq(&self, other: &Regex) -> bool {
56 self.0.as_str() == other.0.as_str()
58 }
59}
60impl Eq for Regex {}