Comments (3)
That is currently somewhat intentional. What you can do today is to use serde to serialize the value into something else. That's obviously not entirely ideal, but might be what you actually need. Can you share what you are trying to do? I'm happy to try to figure out an API to iterate over values and to expose the maps (in some form), but for that it would be interesting to understand the intended use.
from minijinja.
Nice idea, I was able to go via serde_json::from_str
into a HashMap<String, serde_json::Value>
.
The HashMap is then mutable and all works well. The double serialization is right now not ideal, but also not a big issue in my case.
The example looks something like this:
pub fn jwt(_state: &State, claims: Value, signing_key: Option<Value>) -> Result<String, Error> {
let mut claims: HashMap<String, serde_json::Value> =
serde_json::from_str(claims.to_string().as_str()).unwrap();
// in case the expiry is missing, we expire it in 15min
if claims.contains_key(EXPIRY).not() {
let expire_in = Utc::now()
.add(Duration::minutes(15))
.with_second(0)
.unwrap()
.timestamp();
claims.insert(EXPIRY.to_string(), serde_json::Value::from(expire_in));
}
let token = jsonwebtoken::encode(
&Header::default(),
&claims,
&EncodingKey::from_secret(b"secret"),
);
token.map_err(|e| {
Error::new(
ErrorKind::UndefinedError,
"jsonwebtoken failed to encode the token.",
)
.with_source(e)
})
}
from minijinja.
Thanks a lot @mitsuhiko ❤️
from minijinja.
Related Issues (20)
- None value is converted to string when passed down to filter HOT 2
- Ability to add entries to a Value HOT 6
- {{}} in {%%} cannot work HOT 2
- Please support converting to FluentValue HOT 2
- auto impl ArgType trait for a Deserializeable value. HOT 7
- Wrong datetime iso format
- Macros are not callable when transported to other state HOT 2
- filter `indent` escapes HTML to `<` and `>` HOT 1
- Request: support keeping trailing newlines from templates HOT 1
- Support for localization HOT 1
- `ops::int_div` panics on overflow HOT 2
- Capturing a global attribute in a macro leads to leaking memory HOT 6
- Overload binary operators for a custom type HOT 2
- Allow prepending a directory path for errors HOT 7
- Expose minijinja parser (as a separate crate) HOT 4
- clap_builder error for --no-default-features build of minijinja-cli HOT 4
- Casting to number and vice versa HOT 2
- Cargo.lock file for minijinja-cli binary HOT 2
- Feature suggestion: Timestamp formatting filter HOT 2
- Cannot deserialize Enum type HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minijinja.