-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Visibility of Result<T>.Backtrack #88
Comments
To be more precise, this is the problematic part: failure = new Result<TKind>()(remainder, augmentedMessage, attempt.Expectations, attempt.Backtrack); It's not unlikely that custom tokenizer would need to augment the error message and position, just like the above statement. |
..and this is what I needed in the end: ewoutkramer@9c2674f |
Thanks @ewoutkramer - those look like reasonable modifications, I'll take a look at this. |
I have a different use case that needs I want to write another combinator, similar to |
Looking at this again, I wonder if we should consider just making all the I originally steered away from this because I think they're pretty tightly bound to the internal implementation, but in retrospect, making experimentation and add-on development easier seems like a reasonable trade-off. |
@nblumhardt As a user I support this, because it would allow me to do what I want. I'm not sure if I would be comfortable with it as a designer, but fortunately, I'm not the designer, you are. ;) So I'll leave it up to you. |
As a fellow API designer we all know that you'll be stuck with your public interface for a long time. So, I'd do it just "on demand". |
It probably does not make sense to open just a single property, if for nothing else, then for consistency reasons. They were designed as a part of an internal "interface" (I do not mean C# interface here, I mean it in more general sense) that we are considering making public here. If we are comfortable with this, it certainly makes sense. I cannot think of better options right now. I also agree, that it helps with experimentation and the longer term library enhancements. |
👍 both angles are definitely valid. The current shape of these APIs has been stable for quite a long time now, so I'm leaning more towards favouring completeness and consistency in this case, and exposing all of the interface. |
I have tried to build an alternative tokenizer, based on the TokenizerBuilder in this repo. I hit a problem where the code for TokenizerBuilder uses Result.Backtrack - this is an internal property. Which makes me wonder: if the current SimpleLinearTokenizer needs access to this property, wouldn't other custom tokenizers need it too?
The text was updated successfully, but these errors were encountered: