Download codex-rs/core/src/state/additional_context.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 1.3 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/core/src/state/additional_context.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/core/src/state/additional_context.rs
-
curl -L -o additional_context.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/core/src/state/additional_context.rs
1.3 kB
| use std::collections::BTreeMap; | |
| use crate::context::AdditionalContextDeveloperFragment; | |
| use crate::context::AdditionalContextUserFragment; | |
| use crate::context::ContextualUserFragment; | |
| use codex_protocol::models::ResponseItem; | |
| use codex_protocol::protocol::AdditionalContextEntry; | |
| use codex_protocol::protocol::AdditionalContextKind; | |
| pub(crate) struct AdditionalContextStore { | |
| values: BTreeMap<String, AdditionalContextEntry>, | |
| } | |
| impl AdditionalContextStore { | |
| pub(crate) fn merge( | |
| &mut self, | |
| values: BTreeMap<String, AdditionalContextEntry>, | |
| ) -> Vec<ResponseItem> { | |
| let fragments = values | |
| .iter() | |
| .filter(|(key, value)| self.values.get(*key) != Some(*value)) | |
| .map(|(key, entry)| match entry.kind { | |
| AdditionalContextKind::Untrusted => ContextualUserFragment::into( | |
| AdditionalContextUserFragment::new(key.clone(), entry.value.clone()), | |
| ), | |
| AdditionalContextKind::Application => ContextualUserFragment::into( | |
| AdditionalContextDeveloperFragment::new(key.clone(), entry.value.clone()), | |
| ), | |
| }) | |
| .collect(); | |
| self.values = values; | |
| fragments | |
| } | |
| } | |